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

no-std singlevec

Vec-like container optimized for storing only a single item

12 stable releases

new 1.6.0 Oct 21, 2024
1.5.0 Oct 2, 2024
1.4.2 Jun 14, 2024

#577 in Algorithms

Download history 143/week @ 2024-09-28 19/week @ 2024-10-05 9/week @ 2024-10-12 155/week @ 2024-10-19

326 downloads per month

MIT/Apache

35KB
752 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