9 releases
0.2.5 | Jun 13, 2022 |
---|---|
0.2.4 | Jun 13, 2022 |
0.1.2 | Aug 27, 2021 |
#155 in No standard library
59 downloads per month
115KB
2.5K
SLoC
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 thealloc
crate to be availablefallback
: Storage which attempts to store something in one, then falls back to a second storagedebug
: Storage which wraps another, and provides a number of runtime checks which panic on certain forms of UB or incorrect usages.
all_collections
: Enable all collection typesbox
: Include theBox
typevec
: Include theVec
typestring
: Include theString
type, 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 Collections
btree
, an implementation of a BTreeMap
and BTreeSet
hash
, an implementation of a HashMap
and HashSet
Dependencies
~150KB