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.
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 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.