Expand description
Small vectors in various sizes. These store a certain number of elements inline, and fall back to the heap for larger allocations. This can be a useful optimization for improving cache locality and reducing allocator traffic for workloads that fit within the inline buffer.
§no_std support
By default, smallvec does not depend on std. However, the optional
write feature implements the std::io::Write trait for vectors of u8.
When this feature is enabled, smallvec depends on std.
§Optional features
§serde
When this optional dependency is enabled, SmallVec implements the serde::Serialize and
serde::Deserialize traits.
§write
When this feature is enabled, SmallVec<u8, _> implements the std::io::Write trait.
This feature is not compatible with #![no_std] programs.
§extract_if
This feature is unstable. It may change to match the unstable extract_if method in libstd.
Enables the extract_if method, which produces an iterator that calls a user-provided
closure to determine which elements of the vector to remove and yield from the iterator.
§specialization
This feature is unstable and requires a nightly build of the Rust toolchain.
When this feature is enabled, SmallVec::from(slice) has improved performance for slices
of Copy types. (Without this feature, you can use SmallVec::from_slice to get optimal
performance for Copy types.)
Tracking issue: rust-lang/rust#31844
§may_dangle
This feature is unstable and requires a nightly build of the Rust toolchain.
This feature makes the Rust compiler less strict about use of vectors that contain borrowed references. For details, see the Rustonomicon.
Tracking issue: rust-lang/rust#34761
Macros§
Structs§
- An iterator that removes the items from a
SmallVecand yields them by value. - An iterator which uses a closure to determine if an element should be removed.
- An iterator that consumes a
SmallVecand yields its items by value.
Enums§
- Error type for APIs with fallible heap allocation
Unions§
- Either a stack array with
length <= Nor a heap array whose pointer and capacity are stored here.