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.

27 lines
966 B

4 years 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>`.
## Usage
The macro can be used like `vec!`, with optional type inference.
``` rust
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.
``` rust
stack!(pub type S10Elements S10IntoIter 10); // A `StackVec` type with a capacity of 10.
```
# License
MIT