11 stable releases
new 1.5.0 | Oct 2, 2024 |
---|---|
1.4.2 | Jun 14, 2024 |
#558 in Algorithms
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
providesSerialize
andDeserialize
support, provided that the inner type also has the same implementation.
Dependencies
~165KB