The static-collections
crate aims to implement static collection types which do not require dynamic allocations.
It should be useful to create dynamic data structures on stack or global variables.
The StaticString<N>
type can be used to put a dynamic-length string on stack and/or global variable with maximum size of N
bytes.
The StaticCString<N>
type can be used to put a dynamic-length null-terminated string on stack and/or global variable with maximum size of N
bytes.
The StaticVec<N,T>
type can be used to put a dynamic-length array on stack and/or global variable with maximum size of N
elements.
The RefBitmap<N>
is a ZST type that can be used to reference a bitmap with N
bits.
For x86 (including 32-bit and 64-bit) targets, bitmap operations are accelerated by special bit instructions (e.g.: bt
instruction).
I am no algorithm-expert. Useful data-structures in alloc::collections
(e.g.: BTreeMap
) module will not be implemented here for now.
However, feel free to contribute.
This repository supports no_std
and does not require dynamic allocations.
Hence, it could probably be useful for resource-limited environments (e.g.: embedded devices, windows-kernel with high IRQL, etc.)
This crate is licensed under the MIT license