nb-tree 0.2.0-alpha01

Very simple tree structure with generic node and branch data.
Documentation
use crate::prelude::Path;

use self::{absolute::Absolute, skip_below::SkipBelow};

pub mod absolute;
//pub mod combine;
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 {}