Ad-hoc stack vector types for Rust
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Avril d14f9ad40a
add docs
12 months ago
src add docs 12 months ago
.gitignore Initial commit 12 months ago
Cargo.toml add docs 12 months ago add docs 12 months ago

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


The macro can be used like vec!, with optional type inference.

let sv = stack![100]; // Implicitly typed. Will cause a type inference error if the compiler cannot find the type of `sv` later.
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.