pub(crate) fn pull_up_singular_nodes(&mut self) {
        while (!self.root.is_leaf()) && self.root.child_count() == 1 {
            let child = if let Node::Internal(ref children) = *self.root {
                Arc::clone(&children.nodes()[0])
            } else {
                unreachable!()
            };

            self.root = child;
        }
    }
/// Iteratively replaces the root node with its child if it only has
/// one child.
Iteratively replaces the root node with its child if it only has
one child.
Iteratively replaces the root node with its child if it only has one child .
pub(crate) fn pull_up_singular_nodes(&mut self) {
        while (!self.root.is_leaf()) && self.root.child_count() == 1 {
            let child = if let Node::Internal(ref children) = *self.root {
                Arc::clone(&children.nodes()[0])
            } else {
                unreachable!()
            };
            self.root = child;
        }
    }
pub ( crate ) fn pull_up_singular_nodes ( & mut self ) { while ( ! self . root . is_leaf ( ) ) && self . root . child_count ( ) == 1 { let child = if let Node :: Internal ( ref children ) = * self . root { Arc :: clone ( & children . nodes ( ) [ 0 ] ) } else { unreachable ! ( ) } ; self . root = child ; } }
Iteratively replaces the root node with its child if it only has
one child.
Iteratively replaces the root node with its child if it only has one child .
&mut self