Department
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.
Features
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 featuresinline: Inline on-the-stack storagesstatic: Storages backed by static memory, stored in the binaryalloc: Storages backed by a standard allocator. Requires thealloccrate to be availablefallback: Storage which attempts to store something in one, then falls back to a second storage
all_collections: Enable all collection typesbox: Include theBoxtypevec: Include theVectypestring: Include theStringtype, requiresvec
Future Work
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).
Missing Storages
debug, a storage which wraps another storage and provides debug logging or callbacks on allocations/deallocations
Missing Collections
btree, an implementation of a BTreeMap and BTreeSet
hash, an implementation of a HashMap and HashSet