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
alloc
support, 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.
const
initializers.- Support for inline collections.
- Custom index types and growth behavior to manage memory usage.
§Feature flags
- The
std
flag (off by default) enables compatibility with thestd::error::Error
trait for error types, addsio::Write
support toVec
, and also enables thealloc
feature. - With the
alloc
feature (on by default), access to the global allocator is enabled, and default constructors for allocated containers (such asVec::new
) are supported. - The
allocator-api2
feature enables integration with theallocator-api2
crate, which offers support for theallocator-api
feature set on stable Rust. This can allow for allocators implementing the API to be passed toVec::new_in
. - The
nightly
feature enables compatibility with the unstable Rustallocator-api
feature. This requires a nightly Rust compiler build. - The
zeroize
feature enables integration with thezeroize
crate, 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.