|1.1.2||Dec 2, 2020|
|1.1.1||Jun 20, 2020|
|1.0.2||Apr 6, 2020|
#174 in Data structures
65 downloads per month
Used in phreak_engine
This arena tree structure is using just a single
GenerationalArena and indices
instead of reference counted pointers. This means there
RefCell and mutability is handled in a way much more idiomatic to Rust
through unique (&mut) access to the arena. The tree can be sent or shared across
threads like a
Vec. This enables general multiprocessing support like parallel
This crate is a fork of the indextree crate, but with a generational arena to store the nodes instead of a Vec. This enables us to remove nodes and use the vacant spots to insert new nodes, without suffering from the ABA problem, as explained in the generational-arena crate.
We do sacrifice the rayon support in indextree in favor of the improved remove node api.
This package was forked from the excelent https://github.com/saschagrunert/indextree crate. The backing store was replaced by https://github.com/fitzgen/generational-arena, to improve support for removing nodes and reusing the space.
use generational_indextree::Arena; // Create a new arena let arena = &mut Arena::new(); // Add some new nodes to the arena let a = arena.new_node(1); let b = arena.new_node(2); // Append a to b assert!(a.append(b, arena).is_ok()); assert_eq!(b.ancestors(arena).into_iter().count(), 2);
|1.1.2||02-12-2020||Resync to indextree version 4.3.1|
|1.1.1||20-06-2020||Resync to indextree version 4.1.0|
|1.1.0||16-06-2020||Resync to indextree version 4.0.0|
|1.0.0||05-04-2020||For of indextree, but using GenerationArena|