| 132 | } |
| 133 | |
| 134 | fn traverse_node<T: Ord + Debug>(&self, node: &Node<T>, depth: usize) { |
| 135 | if node.is_leaf() { |
| 136 | print!(" {0:{<1$}{2:?}{0:}<1$} ", "", depth, node.keys); |
| 137 | } else { |
| 138 | let _depth = depth + 1; |
| 139 | for (index, key) in node.keys.iter().enumerate() { |
| 140 | self.traverse_node(&node.children[index], _depth); |
| 141 | // Check https://doc.rust-lang.org/std/fmt/index.html |
| 142 | // And https://stackoverflow.com/a/35280799/2849127 |
| 143 | print!("{0:{<1$}{2:?}{0:}<1$}", "", depth, key); |
| 144 | } |
| 145 | self.traverse_node(node.children.last().unwrap(), _depth); |
| 146 | } |
| 147 | } |
| 148 | } |
| 149 | |
| 150 | /// BTree implementation |