A Rust library hosting a possible implementation of the proposed Storages API,
as well as several of the standard std
collections implemented with it.
Inspired by storage-poc, re-implemented and built upon to provide (hopefully) release-ready functionality.
By default, all features are turned on - but they can be disabled if you only want specific storages and collections
std
: Whether to include std error support and other std-only featuresall_storages
: Enable all storage features
inline
: Inline on-the-stack storagesstatic
: Storages backed by static memory, stored in the binaryalloc
: Storages backed by a standard allocator. Requires the alloc
crate to be availablefallback
: Storage which attempts to store something in one, then falls back to a second storageall_collections
: Enable all collection types
box
: Include the Box
typevec
: Include the Vec
typestring
: Include the String
type, requires vec
In the future, more types of storages and collections need to be added, hopefully
up to std
parity. Tests should be added for all storage types, with coverage for most
edge cases (ZST, alignment requirements, etc).
debug
, a storage which wraps another storage and provides debug logging or callbacks on allocations/deallocations
btree
, an implementation of a BTreeMap
and BTreeSet
hash
, an implementation of a HashMap
and HashSet