1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
use std::fmt::Debug;
use crate::node::Node;
pub trait Visitor<E: Debug> {
fn visit_node(&mut self, node: &dyn Node) -> Result<(), E> {
self.visit(node)?;
for child in node.children() {
self.visit_node(child)?;
}
Ok(())
}
fn visit(&mut self, node: &dyn Node) -> Result<(), E>;
}