pub trait Navigate {
// Required method
fn visit(
&mut self,
curs: &TreeCursor<'_>,
) -> Result<Navigation, Box<dyn Error>>;
// Provided methods
fn descend(
&mut self,
_curs: &TreeCursor<'_>,
) -> Result<Navigation, Box<dyn Error>> { ... }
fn walk(&mut self, tree: &Tree) -> Result<(), Box<dyn Error>> { ... }
}