use crate::prelude::Path;
use self::{absolute::Absolute, skip_below::SkipBelow};
pub mod absolute;
pub mod depth;
pub mod skip_below;
pub mod sortable;
pub mod width;
#[derive(Debug, PartialEq)]
pub struct TraversalNode<N, B> {
pub path: Path<B>,
pub data: N,
}
pub trait TreeIterTools: Iterator + Sized {
fn absolute<B>(self) -> Absolute<Self, B> {
Absolute::new(self)
}
fn skip_below<P, B>(self, predicate: P) -> SkipBelow<Self, P, B>
where
P: FnMut(&Self::Item) -> bool,
Self: std::marker::Sized,
{
SkipBelow::new(self, predicate)
}
}
impl<T: Iterator + Sized> TreeIterTools for T {}