#alloc #storage #stack #hash-map #vec #features #backing

nightly no-std storagevec

功能门控的基于堆/栈的映射和向量结构

9个版本

0.2.1 2021年1月17日
0.2.0 2020年9月21日
0.1.6 2020年9月18日
0.1.1 2020年8月26日

744内存管理

每月 25 次下载

MIT/Apache

19KB
417 代码行

storagevec

Build Status crates.io docs.rs

storagevec包提供了StorageVecStorageMap类型。如果启用了alloc功能,这些类型将分别使用标准库的VecHashMap。如果没有启用,它将使用ArrayVecTinyMap,它们都使用基于栈的存储。这对于需要支持no_std目标而不需要分配器的包很有用,同时还需要列表/映射类型等便利。

如果启用了alloc功能,此包中没有引入不安全的代码。如果禁用了alloc功能,或者启用了带有stack功能的alloc功能,将以MaybeUninit结构的形式引入不安全的代码。但是,我怀疑这段代码不会导致未定义行为。

如果启用了带有alloc功能的stack功能,StorageVec将使用TinyVec作为后端存储。

由于使用了const generics,此包需要nightly编译器。

许可

此包可在MIT许可证或Apache 2.0许可证下双许可,由您选择。有关更多信息,请参阅LICENSE-MIT和LICENSE-Apache。

依赖项

~225–500KB
~14K SLoC