A generational indexing-based Vector
This crates provides a vector type that uses generational indices to access
its elements. The addition of a generation counter to an index allows for invalidation
of stale references to previously deleted vector entries.
The vector itself is backed by a free list to keep track of reusable holes
after element removal.
use generational_vector::{GenerationalVector, DeletionResult};
fn example() {
let mut v = GenerationalVector::default();
let a = v.push("first");
let b = v.push("second");
assert_eq!(v.get(&a).unwrap(), &"first");
assert_eq!(v.get(&b).unwrap(), &"second");
v.remove(&b);
assert!(v.get(&b).is_none());
let c = v.push("third");
assert_eq!(v.get(&c).unwrap(), &"third");
assert_eq!(v.get(&b), None);
}
Honorable Mentions