unsafe fn steal_leftward(&mut self) {
        // Take the smallest stuff off right
        let (mut key, mut val, edge) = {
            let mut right_handle = self.right_edge();
            let right = right_handle.edge_mut();
            let (key, val) = right.remove_kv(0);
            let edge = if right.is_leaf() {
                None
            } else {
                Some(right.remove_edge(0))
            };

            (key, val, edge)
        };

        // Swap the parent's separating key-value pair with right's
        mem::swap(&mut key, self.key_mut());
        mem::swap(&mut val, self.val_mut());

        // Put them at the end of left
        let mut left_handle = self.left_edge();
        let left = left_handle.edge_mut();
        left.push_kv(key, val);
        match edge {
            Some(edge) => left.push_edge(edge),
            None => {}
        }
    }
/// Steal! Stealing is roughly analogous to a binary tree rotation.
/// In this case, we're "rotating" left.
Steal. Stealing is roughly analogous to a binary tree rotation.
In this case, we're "rotating" left.
Steal . Stealing is roughly analogous to a binary tree rotation . In this case we ' re " rotating " left .
unsafe fn steal_leftward(&mut self) {
        // Take the smallest stuff off right
        let (mut key, mut val, edge) = {
            let mut right_handle = self.right_edge();
            let right = right_handle.edge_mut();
            let (key, val) = right.remove_kv(0);
            let edge = if right.is_leaf() {
                None
            } else {
                Some(right.remove_edge(0))
            };
            (key, val, edge)
        };
        // Swap the parent's separating key-value pair with right's
        mem::swap(&mut key, self.key_mut());
        mem::swap(&mut val, self.val_mut());
        // Put them at the end of left
        let mut left_handle = self.left_edge();
        let left = left_handle.edge_mut();
        left.push_kv(key, val);
        match edge {
            Some(edge) => left.push_edge(edge),
            None => {}
        }
    }
unsafe fn steal_leftward ( & mut self ) { // Take the smallest stuff off right let ( mut key , mut val , edge ) = { let mut right_handle = self . right_edge ( ) ; let right = right_handle . edge_mut ( ) ; let ( key , val ) = right . remove_kv ( 0 ) ; let edge = if right . is_leaf ( ) { None } else { Some ( right . remove_edge ( 0 ) ) } ; ( key , val , edge ) } ; // Swap the parent's separating key-value pair with right's mem :: swap ( & mut key , self . key_mut ( ) ) ; mem :: swap ( & mut val , self . val_mut ( ) ) ; // Put them at the end of left let mut left_handle = self . left_edge ( ) ; let left = left_handle . edge_mut ( ) ; left . push_kv ( key , val ) ; match edge { Some ( edge ) => left . push_edge ( edge ) , None => { } } }
Steal!
Steal!
&mut self