4 releases
Uses old Rust 2015
| 0.1.3 | Oct 28, 2018 |
|---|---|
| 0.1.2 | Mar 9, 2018 |
| 0.1.1 | Mar 9, 2018 |
| 0.1.0 | Mar 9, 2018 |
#17 in #slotmap
16KB
290 lines
Deprecated: use slotmap.
Slot map: array storage with persistent indices
Vec<T>-like collection with stable indices.
The underlying array's indices are re-used by incrementing a
versioning tag in the index type.
The SlotMapIndex type consists of a u32 for storing the
index into the underlying array, and a u32 for storing
the version. Deleting and inserting more times than the maximum
value of u32 will cause overflow and index conflict bugs.
Example
# use slotmapvec::*;
let mut map = SlotMapVec::new();
map.insert(123213);
let idx = map.insert(34234);
map.insert(654654);
map.remove(idx);
let idx2 = map.insert(999);
assert_eq!(map.get(idx), None);
assert_eq!(map.get(idx2), Some(&999));
lib.rs:
Slot map: array storage with persistent indices
Vec<T>-like collection with stable indices.
The underlying array's indices are re-used by incrementing a
versioning tag in the index type.
The SlotMapIndex type consists of a u32 for storing the
index into the underlying array, and a u32 for storing
the version. Deleting and inserting more times than the maximum
value of u32 will cause overflow and index conflict bugs.
Examples
let mut map = SlotMapVec::new();
map.insert(123213);
let idx = map.insert(34234);
map.insert(654654);
map.remove(idx);
let idx2 = map.insert(999);
assert_eq!(map.get(idx), None);
assert_eq!(map.get(idx2), Some(&999));