[−][src]Crate gen_vec
gen-vec
Vector of reusable, generational indices that owns its values
Inspired by Catherine West's closing keynote at RustConf 2018
Closed vs. Exposed index allocation implementations
ClosedGenVec
uses a non user-accessible index allocator to manage indices
ExposedGenVec
relies on an external IndexAllocator
As such, an IndexAllocator
must be created and used to allocate/deallocate indices manually.
This is useful for using the same Index
across multiple ExposedGenerationalVec
instances
Note: IndexAllocator
cannot be used with ClosedGenerationalVec
since it has its own
internal IndexAllocator
Explanation of Generational Indices
Index
structs are used to access the vector's contents. An Index
contains an index for the vector
and a generation (which is 0 initially).
Deallocated/removed Index
s go into a list of free Index
s that can be reused
Every time an Index
is reused, the internal generation is incremented. This ensures that a deallocated
Index
handle can't access data that it no longer validly points to
Modules
closed | Uses closed/non user-accessible index allocator |
exposed | Uses exposed/independent index allocator |
Structs
Index | An index of a generational vec |