indextree
indextree copied to clipboard
Arena based tree 🌲 structure by using indices instead of reference counted pointers
Hello, I'd like to append to my indextree arena in parallel through rayon, however I'm running into issues with the borrow checker. What's the recommended way to circumvent this?
Hi, I'd like to get an iteration through children first. Here are examples: ``` use indextree::Arena; pub fn test_arena() { let mut arena = Arena::new(); let n1 = arena.new_node(("1", 0));...
Hi, Is there anyway to iterate over all the nodes in an Arena in a depth-first order (`iter` seems to be in storage order). At the moment, I'm tracking all...
When dealing with the tree structure, sometimes we want to remove the all children nodes of a specific node but keeping the node itself. For example, removing anything between tags...
See "Data structures for the document object model" http://www.aosabook.org/en/posa/parsing-xml-at-the-speed-of-light.html section for a neat trick to save one pointer per node while maintaining O(1) operations.
These methods enables users to traverse tree without borrowing arena for long. They would be useful especially when modifying nodes being traversed. Using these methods, https://github.com/saschagrunert/indextree/issues/75#issuecomment-1253565930 can be written more...
I need an unique identifier associated with the nodes and it has to be an integer of any kind
First of all, I'd like to express my appreciation for your excellent work! However, I've found a bug that `NodeStamp` does not work as expected when reusing nodes. ## Problems...
How am i supposed to filter some ids from arena, for further manipulations? get_node_id searches the entire arena. Also, how are you supposed to do memoized recursion ``` fn pos(&self,...
Hi, thanks for this great crate. I was dissatisfied with the deserialization performance of the `deser` feature (using serde and bincode) and looked into zero-copy alternatives. Using [rkyv](https://crates.io/crates/rkyv) I managed...