9 releases
0.2.1 | Jan 17, 2021 |
---|---|
0.2.0 | Sep 21, 2020 |
0.1.6 | Sep 18, 2020 |
0.1.1 | Aug 26, 2020 |
#743 in Memory management
25 downloads per month
19KB
417 lines
storagevec
The storagevec
crate provides the StorageVec
and StorageMap
types. If the alloc
feature is enabled, these types will use the standard library Vec
and HashMap
, respectively. If it is not enabled, it will use ArrayVec
and TinyMap
, which both use stack-based storage. This is useful for crates that need to support no_std
targets without allocators, but also need the convenience of list/map-like types.
If the alloc
feature is enabled, there is no unsafe code introduced in this crate. If the alloc
feature is disabled, or the alloc
feature is enabled with the stack
feature, unsafe code is introduced in the form of the MaybeUninit
struct. However, I doubt this code will cause undefined behavior.
If the stack
feature is enabled with the alloc
feature, StorageVec
will use TinyVec
as backing storage.
This crate requires a nightly compiler due to the use of const generics.
License
This crate is dual-licensed under the MIT License or the Apache 2.0 License, at your option. See LICENSE-MIT and LICENSE-Apache for more information.
Dependencies
~310–540KB
~15K SLoC