[−][src]Crate stack_vec
Ad-hoc stack vectors
This crate defines the macro stack![]
, which can be used to create ad-hoc Vec<T>
like structs of a specific compile-time size on the stack.
These structs never allocate on the heap, and expose an API similar to Vec<T>
.
Usage
The macro can be used like vec!
, with optional type inference.
let mut sv = stack![100]; // Implicitly typed. sv.push(10usize); let sv = stack![usize; 100]; // Explicitly typed, circumvents that error.
To see documentation of the types themselves, see one of the pre-defined StackVec
types in the crate's root.
Pre-defined types
StackVec
types of powers of 2 up until 4096 are defined in this crate too.
You can use the macro to create your own named non-opaque StackVec
types as well.
stack!(pub type S10Elements S10IntoIter 10); // A `StackVec` type with a capacity of 10.
Macros
stack | Create an ad-hoc sized |
Structs
StackVec1 | A sized stack vector |
StackVec1IntoIter | Consuming iterator type for a |
StackVec2 | A sized stack vector |
StackVec2IntoIter | Consuming iterator type for a |
StackVec4 | A sized stack vector |
StackVec4IntoIter | Consuming iterator type for a |
StackVec8 | A sized stack vector |
StackVec8IntoIter | Consuming iterator type for a |
StackVec16 | A sized stack vector |
StackVec16IntoIter | Consuming iterator type for a |
StackVec32 | A sized stack vector |
StackVec32IntoIter | Consuming iterator type for a |
StackVec64 | A sized stack vector |
StackVec64IntoIter | Consuming iterator type for a |
StackVec128 | A sized stack vector |
StackVec128IntoIter | Consuming iterator type for a |
StackVec256 | A sized stack vector |
StackVec256IntoIter | Consuming iterator type for a |
StackVec512 | A sized stack vector |
StackVec512IntoIter | Consuming iterator type for a |
StackVec1024 | A sized stack vector |
StackVec1024IntoIter | Consuming iterator type for a |
StackVec2048 | A sized stack vector |
StackVec2048IntoIter | Consuming iterator type for a |
StackVec4096 | A sized stack vector |
StackVec4096IntoIter | Consuming iterator type for a |