pub trait Visitor {
// Provided methods
fn on_enter(
&mut self,
point: Option<&dyn Point>,
link: &Link,
) -> ShouldBreak { ... }
fn on_exit(&mut self, point: Option<&dyn Point>, link: &Link) -> ShouldBreak { ... }
fn select(
&mut self,
point: &dyn Point,
links: &mut Vec<Link>,
) -> ShouldBreak { ... }
fn on_missing(&mut self, point: &dyn Point, links: Vec<Link>) -> ShouldBreak { ... }
}