Lines Matching refs:node
3 use super::node::Removed;
17 node: [Node; MAX_PATH], field
29 node: [Node(0); MAX_PATH], in default()
55 let mut node = root; in find() localVariable
58 self.node[level] = node; in find()
59 match pool[node] { in find()
70 node = tree[i]; in find()
85 NodeData::Free { .. } => panic!("Free {} reached from {}", node, root), in find()
93 let mut node = root; in first() localVariable
96 self.node[level] = node; in first()
98 match pool[node] { in first()
99 NodeData::Inner { tree, .. } => node = tree[0], in first()
101 NodeData::Free { .. } => panic!("Free {} reached from {}", node, root), in first()
111 Some((node, entry)) => { in next()
112 let (keys, vals) = pool[node].unwrap_leaf(); in next()
122 self.next_node(leaf_level, pool).map(|node| { in next()
123 let (keys, vals) = pool[node].unwrap_leaf(); in next()
137 let (node, entry) = self.leaf_pos().unwrap(); in prev()
138 let (keys, vals) = pool[node].unwrap_leaf(); in prev()
144 Some((node, entry)) => { in prev()
147 let (keys, vals) = pool[node].unwrap_leaf(); in prev()
154 self.prev_leaf(pool).map(|node| { in prev()
155 let (keys, vals) = pool[node].unwrap_leaf(); in prev()
173 let (_, bnodes) = pool[self.node[bl]].unwrap_inner(); in next_node()
175 let mut node = bnodes[usize::from(self.entry[bl])]; in next_node() localVariable
178 self.node[l] = node; in next_node()
180 node = pool[node].unwrap_inner().1[0]; in next_node()
183 self.node[level] = node; in next_node()
185 Some(node) in next_node()
199 let (_, bnodes) = pool[self.node[bl]].unwrap_inner(); in prev_leaf()
206 let mut node = root; in goto_subtree_last() localVariable
208 self.node[l] = node; in goto_subtree_last()
209 match pool[node] { in goto_subtree_last()
212 node = tree[usize::from(size)]; in goto_subtree_last()
219 NodeData::Free { .. } => panic!("Free {} reached from {}", node, root), in goto_subtree_last()
222 node in goto_subtree_last()
228 self.node[0] = root; in set_root_node()
235 self.node.get(i).map(|&n| (n, self.entry[i].into())) in leaf_pos()
240 self.node[self.size - 1] in leaf_node()
273 Ok(self.node[0]) in insert()
297 let orig_root = self.node[0]; in split_and_insert()
305 let mut node = self.node[level]; in split_and_insert() localVariable
307 split = pool[node].split(entry); in split_and_insert()
321 node = rhs_node; in split_and_insert()
323 self.node[level] = node; in split_and_insert()
330 let inserted = pool[node].try_leaf_insert(entry, key, value); in split_and_insert()
334 if entry == 0 && node == rhs_node { in split_and_insert()
339 let inserted = pool[node].try_inner_insert(entry, key, n); in split_and_insert()
343 if n == self.node[level + 1] { in split_and_insert()
354 let pnode = &mut pool[self.node[level - 1]]; in split_and_insert()
358 if node == rhs_node { in split_and_insert()
369 let entry = if self.node[0] == rhs_node { 1 } else { 0 }; in split_and_insert()
371 slice_insert(&mut self.node[0..self.size], 0, root); in split_and_insert()
387 Some(self.node[0]) in remove()
402 let (keys, _) = pool[self.node[bl]].unwrap_inner(); in current_crit_key()
418 let crit_node = self.node[crit_level]; in update_crit_key()
455 } = pool[self.node[ns]] in balance_nodes()
458 self.node[ns] = tree[0]; in balance_nodes()
463 pool.free_node(self.node[l]); in balance_nodes()
468 slice_shift(&mut self.node, ns); in balance_nodes()
478 Some(self.node[0]) in balance_nodes()
495 pool[self.node[level]].entries() in heal_level()
520 match pool[self.node[level]].balance(crit_key, &mut rhs) { in underflowed_node()
547 debug_assert!(usize::from(self.entry[level]) < pool[self.node[level]].entries()); in underflowed_node()
548 } else if usize::from(self.entry[level]) >= pool[self.node[level]].entries() { in underflowed_node()
564 pool.free_node(self.node[level]); in empty_node()
576 let status = pool[self.node[pl]].inner_remove(pe); in empty_node()
583 Some(rhs) => self.node[level] = rhs, in empty_node()
598 (0..level).rposition(|l| match pool[self.node[l]] { in right_sibling_branch_level()
618 let mut node; in right_sibling() localVariable
620 let (keys, tree) = pool[self.node[bl]].unwrap_inner(); in right_sibling()
622 node = tree[be + 1]; in right_sibling()
627 node = pool[node].unwrap_inner().1[0]; in right_sibling()
630 (crit_key, node) in right_sibling()
639 match pool[self.node[bl]] { in update_right_crit_key()
664 match pool[self.node[level]] { in verify()
675 self.node[level + 1], in verify()
690 panic!("Free {} in path", self.node[level]); in verify()
703 write!(f, "{}[{}]", self.node[0], self.entry[0])?; in fmt()
705 write!(f, "--{}[{}]", self.node[i], self.entry[i])?; in fmt()
755 assert_eq!(p.node[0], root); in search_single_leaf()
761 assert_eq!(p.node[0], root); in search_single_leaf()
767 assert_eq!(p.node[0], root); in search_single_leaf()
787 assert_eq!(p.node[0], root); in search_single_leaf()
793 assert_eq!(p.node[0], root); in search_single_leaf()
812 assert_eq!(p.node[0], root); in search_single_inner()
814 assert_eq!(p.node[1], leaf1); in search_single_inner()
819 assert_eq!(p.node[0], root); in search_single_inner()
821 assert_eq!(p.node[1], leaf1); in search_single_inner()
827 assert_eq!(p.node[0], root); in search_single_inner()
829 assert_eq!(p.node[1], leaf1); in search_single_inner()
834 assert_eq!(p.node[0], root); in search_single_inner()
836 assert_eq!(p.node[1], leaf2); in search_single_inner()
841 assert_eq!(p.node[0], root); in search_single_inner()
843 assert_eq!(p.node[1], leaf2); in search_single_inner()