pub trait ValueVisitor<X, Y>{
type Err;
// Required method
fn visit(
&mut self,
path: &mut SborPathBuf,
value: &Y
) -> Result<(), Self::Err>;
// Provided methods
fn visit_array(
&mut self,
_path: &mut SborPathBuf,
_element_value_kind: &ValueKind<X>,
_elements: &[Value<X, Y>]
) -> Result<(), Self::Err> { ... }
fn visit_map(
&mut self,
_path: &mut SborPathBuf,
_key_value_kind: &ValueKind<X>,
_value_value_kind: &ValueKind<X>,
_entries: &[(Value<X, Y>, Value<X, Y>)]
) -> Result<(), Self::Err> { ... }
}