A simple object arena.
You want to build a doubly linked list? Or maybe a bidirectional tree? Perhaps an even more complicated object graph?
Managing ownership and lifetimes might be tough then. Your options boil down to:
Rc<RefCell<T>>
.Vec<T>
to store objects, then access them using indices.If the last option seems most appealing to you, perhaps Arena<T>
is for you. It will provide a more convenient API than a plain Vec<T>
.
Some data structures built using Arena<T>
: