13 releases (3 stable)
1.2.0 | May 8, 2021 |
---|---|
1.1.0 | Mar 20, 2021 |
1.0.0 | Sep 7, 2020 |
0.5.2 | Aug 20, 2020 |
0.1.1 | Nov 14, 2016 |
#588 in Memory management
6,467 downloads per month
Used in 20 crates
(via synchrotron)
23KB
304 lines
vec-arena (deprecated)
This crate is now deprecated in favor of slab.
What is this?
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:
- Use unsafe code to escape Rust's ownership rules.
- Wrap every object in
Rc<RefCell<T>>
. - Use
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>
.
Examples
Some data structures built using Arena<T>
: