9 个版本

0.2.5 2022 年 6 月 13 日
0.2.4 2022 年 6 月 13 日
0.1.2 2021 年 8 月 27 日

#171 in 无标准库

每月 27 次下载

MIT/Apache

115KB
2.5K SLoC

Department

crates.io Documentation MIT/Apache-2 licensed

一个 Rust 库,它提供了一个可能的 Storages API 实现,以及使用它实现的几个标准 std 集合。

storage-poc 的启发,重新实现并在此基础上构建,以提供(希望是)可发布的功能。

特性

默认情况下,所有功能都已开启 - 但如果您只想使用特定的存储和集合,则可以禁用它们

  • std:是否包含 std 错误支持和其他仅限 std 的功能
  • all_storages:启用所有存储功能
    • inline:堆栈上的内联存储
    • static:由静态内存支持的存储,存储在二进制文件中
    • alloc:由标准分配器支持的存储。需要 alloc crate 可用
    • fallback:尝试在一个存储中存储某个东西,然后回退到第二个存储的存储
    • debug:包装另一个存储并提供在特定形式的 UB 或错误使用时引发 panic 的运行时检查的存储
  • all_collections:启用所有集合类型
    • box:包含 Box 类型
    • vec:包含 Vec 类型
    • string:包含 String 类型,需要 vec

未来工作

未来,需要添加更多类型的存储和集合,希望达到与 std 相当的水平。应为所有存储类型添加测试,并覆盖大多数边缘情况(ZST、对齐要求等)。

缺少的集合

btree,一个 BTreeMapBTreeSet 的实现 hash,一个 HashMapHashSet 的实现

依赖关系

~145KB