Can these just be implemented as methods on `SnapMapIterator`:

```rust
impl<'self, K, V> SnapMapIterator<'self, K, V> {
    fn traverse_left(&mut self) { ... }
    fn traverse_right(&mut self) { ... }
    fn traverse_complete(&mut self) { ... }
}
```