Slabigator
A linked list that doesn't do dynamic memory allocations.
Things it was designed to do:
- Add to the head of the list in O(1) - What you get back is a stable slot number
- Pop from the tail of the list in O(1)
- Delete an element given its slot number in O(1)
- And nothing else.
Dumb, small, maintainable, zero dependencies.
Cargo features:
releasefast: assume thatremove()will always be called with a valid index. This saves some memory, but has to be used with extreme caution. That feature is not set by default.slot_u32: useu32as the slot type (default)slot_u64: useu64as the slot typeslot_usize: useusizeas the slot type