dsalgo 0.3.7

A package for Datastructures and Algorithms.
Documentation
pub trait Child: Sized {
    fn left(&self) -> &Option<Self>;
    fn right(&self) -> &Option<Self>;
}

pub trait ChildMut: Child {
    fn left_mut(&mut self) -> &mut Option<Self>;
    fn right_mut(&mut self) -> &mut Option<Self>;
}

pub trait Update {
    fn update(&mut self);
}

// use crate::identifier;

// pub struct WithParent;

// impl identifier::Identifier for WithParent {}

pub(crate) trait Rotation {
    fn rotate_left(self) -> Self;
    fn rotate_right(self) -> Self;
}

/// for updating node data when the childs are changed.
pub(crate) trait UpdateData {
    fn update(&mut self, left_data: &Self, right_data: &Self);
}