flex-alloc
This crate provides highly flexible storage for std
-compatible container types (currently Cow
, and Vec
), going beyond what is supported by unstable features such as allocator-api
.
Both no-std
as well as no-alloc
environments are supported.
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
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
.
Credits
This crate is partly inspired by coca, which has generally broader functionality, but currently only supports fixed-size containers. Portions are adapted from the Rust standard library.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.