Struct id_tree::NodeBuilder
[−]
[src]
pub struct NodeBuilder<T> { /* fields omitted */ }A Node builder that provides more control over how a Node is created.
Methods
impl<T> NodeBuilder<T>[src]
fn new(data: T) -> NodeBuilder<T>
Creates a new NodeBuilder with the required data.
use id_tree::NodeBuilder; let _node_builder = NodeBuilder::new(5);
fn with_child_capacity(self, child_capacity: usize) -> NodeBuilder<T>
Set the child capacity of the NodeBuilder.
As Nodes are added to a Tree, parent and child references must be maintained. To do this,
an allocation must be made every time a child is added to a Node. Using this setting
allows the Node to pre-allocate space for its children so that the allocations aren't made
as children are added.
Use of this setting is recommended if you know the maximum number of children (not
including grandchildren, great-grandchildren, etc.) that a Node will have at any given
time.
use id_tree::NodeBuilder; let _node_builder = NodeBuilder::new(5).with_child_capacity(3);
fn build(self) -> Node<T>
Build a Node based upon the current settings in the NodeBuilder.
use id_tree::NodeBuilder; use id_tree::Node; let node: Node<i32> = NodeBuilder::new(5) .with_child_capacity(3) .build(); assert_eq!(node.data(), &5); assert_eq!(node.children().capacity(), 3);