Expand description
§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 Indexs go into a list of free Indexs 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