Lines Matching defs:height
29254 let tree_height = open_node.height() - 1;
32108 if root_a.height() < root_b.height() {
32130 let mut right_root = Root::new_pillar(left_root.height());
32159 fn new_pillar(height: usize) -> Self {
32161 for _ in 0..height {
35017 // special case with maximum height.
35578 // i.e., a tree who's root is a leaf node at height 0.
35582 // i.e., a tree who's root is an internal node at height 1, with edges to leaf nodes.
35583 // It's not the minimum size: removing an element from such a tree does not always reduce height.
35587 // i.e., a tree who's root is an internal node at height 2, with edges to more internal nodes.
35588 // It's not the minimum size: removing an element from such a tree does not always reduce height.
35620 root_node.assert_min_len(if root_node.height() > 0 { 1 } else { 0 });
35641 // Returns the height of the root, if any.
35642 fn height(&self) -> Option<usize> {
35643 self.root.as_ref().map(node::Root::height)
35703 assert_eq!(map.height(), None);
35707 while map.height() == Some(0) {
35716 assert_eq!(map.height(), Some(1));
35719 while map.height() == Some(1) {
35731 assert_eq!(map.height(), Some(2));
35824 assert_eq!(map.height(), None);
35826 assert_eq!(map.height(), Some(0));
35846 assert_eq!(map.height(), Some(0));
35858 assert_eq!(map.height(), Some(0));
35872 assert_eq!(map.height(), Some(0));
35889 assert_eq!(map.height(), Some(0));
37626 // special case with maximum height.
37926 // height: usize,
37927 // root: Option<Box<Node<K, V, height>>>
37930 // struct Node<K, V, height: usize> {
37933 // edges: [if height > 0 { Box<Node<K, V, height - 1>> } else { () }; 2 * B],
37934 // parent: Option<(NonNull<Node<K, V, height + 1>>, u16)>,
37947 // - Trees must have uniform depth/height. This means that every path down to a leaf from a
38106 /// the node itself does not store. We only need to store the height of the root
38107 /// node, and derive every other node's height from it.
38109 height: usize,
38142 NodeRef { height: 0, node: NonNull::from(Box::leak(leaf)), _marker: PhantomData }
38150 unsafe { NodeRef::from_new_internal(new_node, child.height + 1) }
38154 /// `height` must not be zero.
38155 unsafe fn from_new_internal(internal: Box<InternalNode<K, V>>, height: usize) -> Self {
38156 debug_assert!(height > 0);
38158 let mut this = NodeRef { height, node, _marker: PhantomData };
38166 fn from_internal(node: NonNull<InternalNode<K, V>>, height: usize) -> Self {
38167 debug_assert!(height > 0);
38168 NodeRef { height, node: node.cast(), _marker: PhantomData }
38202 /// height means the node is a leaf itself. If you picture trees with the
38206 pub fn height(&self) -> usize {
38207 self.height
38212 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38246 node: NodeRef::from_internal(*parent, self.height + 1),
38280 let Self { node, height, _marker } = self;
38282 debug_assert_eq!(*height, other.height);
38314 let height = self.height;
38320 if height > 0 {
38343 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38475 /// make that new node the root node, and return it. This increases the height by 1
38481 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38487 /// This decreases the height by 1 and is the opposite of `push_internal_level`.
38494 assert!(self.height > 0);
38504 self.height -= 1;
38518 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38523 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38529 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38551 assert!(edge.height == self.height - 1);
38569 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38576 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38588 if self.height == 0 {
38590 height: self.height,
38596 height: self.height,
38607 debug_assert!(self.height == 0);
38608 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38613 debug_assert!(self.height > 0);
38614 NodeRef { height: self.height, node: self.node, _marker: PhantomData }
38817 debug_assert!(edge.height == self.node.height - 1);
38839 assert!(edge.height == self.node.height - 1);
38913 // height field because that value is copied. Beware that, once the
38919 NodeRef { node, height: self.node.height - 1, _marker: PhantomData }
39049 let height = self.node.height;
39050 let right = NodeRef::from_new_internal(new_node, height);
39181 if parent_node.height > 1 {
39182 // SAFETY: the height of the nodes being merged is one below the height
39469 assert!(left_node.height == right_node.height);
39658 let depth = self.height();
39664 let depth = self.height() - kv.into_node().height();
39799 while self.height() > 0 && self.len() == 0 {