pub fn replace_kv(&mut self, k: K, v: V) -> (K, V) {
        let (key, val) = self.kv_mut();
        (mem::replace(key, k), mem::replace(val, v))
    }
Splits the underlying node into three parts:

- The node is truncated to only contain the edges and key-value pairs to the
left of this handle.
- The key and value pointed to by this handle are ext
benchmarks/haystacks/code/rust-library.rs