Expand description
Data structures with extra flexible storage.
This crate provides highly flexible container types (currently
Box, Cow, and
Vec) which mimic the API provided in std,
with allocation flexibility going beyond what is supported by
unstable features such as allocator-api.
Both no-std and no-alloc environments are supported.
§Highlights
- Optional
allocsupport, such that application may easily alternate between fixed buffers and heap allocation. - Custom allocator implementations, including the ability to spill from a small stack allocation to a heap allocation.
- Additional fallible update methods, allowing for more ergonomic fixed size collections and handling of allocation errors.
constinitializers.- Support for inline collections.
- Custom index types and growth behavior to manage memory usage.
§Feature flags
- The
stdflag (off by default) enables compatibility with thestd::error::Errortrait for error types, addsio::Writesupport toVec, and also enables theallocfeature. - With the
allocfeature (on by default), access to the global allocator is enabled, and default constructors for allocated containers (such asVec::new) are supported. - The
allocator-api2feature enables integration with theallocator-api2crate, which offers support for theallocator-apifeature set on stable Rust. This can allow for allocators implementing the API to be passed toVec::new_in. - The
nightlyfeature enables compatibility with the unstable Rustallocator-apifeature. This requires a nightly Rust compiler build. - The
zeroizefeature enables integration with thezeroizecrate, including a zeroizing allocator. This can be used to automatically zero out allocated memory for allocated types, including the intermediate buffers produced during resizing in the case ofVec.
Modules§
- alloc
- Support for memory allocation.
- borrow
- Support for flexibility over owned or borrowed collections.
- boxed
- Support for values contained within allocated memory.
- capacity
- Types used to specify indexes, ranges, lengths, and capacities of collections.
- storage
- Backing storage types for collections.
- vec
- Support for generic vector structures containing a (generally) resizable, contiguous array of items.
Macros§
- vec
- Allocate a new Vec instance with optional initial items.
Structs§
- Update
Error - An error raised by collection update operations when appropriate storage was not available. Includes an associated value that could not be stored or converted.
Enums§
- Storage
Error - An enumeration of error types raised by storage implementations.