#data-structures #optimized #vec #single #container #fallback #safe

no-std singlevec

Vec-like container optimized for storing only a single item

11 stable releases

new 1.5.0 Oct 2, 2024
1.4.2 Jun 14, 2024

#558 in Algorithms

MIT/Apache

33KB
735 lines

singlevec

For when you need a Vec, but intend to store only one item most of the time. In that case, that single item can be stored on the stack and will fall back to heap storage for multiple items.

Like a tinyvec::TinyVec<[T; 1]> that shares methods in common with both Vec and Option.

Simple and 100% safe code for a simple use case.


lib.rs:

SingleVec is Vec-like container type optimized for storing a single item.

0 or 1 items are stored internally as a standard Option - which can be kept on the stack - but falls back to a standard Vec for multiple items - which are stored on the heap.

Although SingleVec shares many of the same traits and methods as Vec, it also shares many of the same methods as Option and Iterator where appropriate. Since only a single optional item is intended to be the common case, those methods can avoid iteration altogether.

Other Features

  • serde provides Serialize and Deserialize support, provided that the inner type also has the same implementation.

Dependencies

~165KB