pub trait Node: Sized + Clone {
// Required methods
fn apply_children<'a, F: FnMut(&'a Self) -> VortexResult<TraversalOrder>>(
&'a self,
f: F,
) -> VortexResult<TraversalOrder>;
fn map_children<F: FnMut(Self) -> VortexResult<Transformed<Self>>>(
self,
f: F,
) -> VortexResult<Transformed<Self>>;
fn iter_children<T>(
&self,
f: impl FnOnce(&mut dyn Iterator<Item = &Self>) -> T,
) -> T;
fn children_count(&self) -> usize;
}Required Methods§
Sourcefn apply_children<'a, F: FnMut(&'a Self) -> VortexResult<TraversalOrder>>(
&'a self,
f: F,
) -> VortexResult<TraversalOrder>
fn apply_children<'a, F: FnMut(&'a Self) -> VortexResult<TraversalOrder>>( &'a self, f: F, ) -> VortexResult<TraversalOrder>
Walk the node’s children by applying f to them.
This is a lower level API that other functions rely on for their implementation.
Sourcefn map_children<F: FnMut(Self) -> VortexResult<Transformed<Self>>>(
self,
f: F,
) -> VortexResult<Transformed<Self>>
fn map_children<F: FnMut(Self) -> VortexResult<Transformed<Self>>>( self, f: F, ) -> VortexResult<Transformed<Self>>
Rewrite the node’s children by applying f to them.
This is a lower level API that other functions rely on for their implementation.
Sourcefn iter_children<T>(
&self,
f: impl FnOnce(&mut dyn Iterator<Item = &Self>) -> T,
) -> T
fn iter_children<T>( &self, f: impl FnOnce(&mut dyn Iterator<Item = &Self>) -> T, ) -> T
This is a lower level API that other functions rely on for their implementation.
Sourcefn children_count(&self) -> usize
fn children_count(&self) -> usize
This is a lower level API that other functions rely on for their implementation.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".