diff --git a/.rustfmt.toml b/.rustfmt.toml index b92713d..e188a77 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -2,4 +2,7 @@ fn_brace_style = "SameLineWhere" fn_return_indent = "WithWhereClause" fn_args_density = "Compressed" where_layout = "Horizontal" -format_strings = false \ No newline at end of file +format_strings = false +chain_one_line_max = 15 +ideal_width = 100 +take_source_hints = true diff --git a/README.md b/README.md index f72511c..b660422 100644 --- a/README.md +++ b/README.md @@ -44,19 +44,11 @@ fn main() { tree.insert(Node::new(3), UnderNode(&child_id)).unwrap(); tree.insert(Node::new(4), UnderNode(&child_id)).unwrap(); - println!("Pre-order:"); - print_pre_order(&tree, &root_id); - // results in the output "0, 1, 3, 4, 2, " -} - -fn print_pre_order(tree: &Tree, node_id: &NodeId) { - let node_ref = tree.get(node_id).unwrap(); - - print!("{}, ", node_ref.data()); - - for child_id in node_ref.children() { - print_pre_order(tree, &child_id); + println!("Post-order:"); + for node in tree.traverse_pre_order(&root_id).unwrap() { + print!("{}, ", node.data()); } + // results in the output "0, 1, 3, 4, 2, " } ``` diff --git a/src/tree/mod.rs b/src/tree/mod.rs index 467a23b..2c5d3b6 100644 --- a/src/tree/mod.rs +++ b/src/tree/mod.rs @@ -1252,9 +1252,10 @@ impl Tree { fn insert_new_node(&mut self, new_node: Node) -> NodeId { if self.free_ids.len() > 0 { - let new_node_id: NodeId = self.free_ids - .pop() - .expect("Tree::insert_new_node: Couldn't pop from Vec with len() > 0."); + let new_node_id: NodeId = + self.free_ids + .pop() + .expect("Tree::insert_new_node: Couldn't pop from Vec with len() > 0."); self.nodes.push(Some(new_node)); self.nodes.swap_remove(new_node_id.index);