Trait adapton::catalog::collections::TreeElim [] [src]

pub trait TreeElim<Lev: Level, Leaf>: Debug + Hash + PartialEq + Eq + Clone + 'static {
    fn lev_of_tree(_: &Self) -> Lev;
fn elim<Res, NilC, LeafC, BinC, NameC>(
        _: Self,
        _: NilC,
        _: LeafC,
        _: BinC,
        _: NameC
    ) -> Res
    where
        NilC: FnOnce() -> Res,
        LeafC: FnOnce(Leaf) -> Res,
        BinC: FnOnce(Lev, Self, Self) -> Res,
        NameC: FnOnce(Name, Lev, Self, Self) -> Res
;
fn elim_ref<Res, NilC, LeafC, BinC, NameC>(
        _: &Self,
        _: NilC,
        _: LeafC,
        _: BinC,
        _: NameC
    ) -> Res
    where
        NilC: FnOnce() -> Res,
        LeafC: FnOnce(&Leaf) -> Res,
        BinC: FnOnce(&Lev, &Self, &Self) -> Res,
        NameC: FnOnce(&Name, &Lev, &Self, &Self) -> Res
;
fn elim_arg<Arg, Res, NilC, LeafC, BinC, NameC>(
        _: Self,
        _: Arg,
        _: NilC,
        _: LeafC,
        _: BinC,
        _: NameC
    ) -> Res
    where
        NilC: FnOnce(Arg) -> Res,
        LeafC: FnOnce(Leaf, Arg) -> Res,
        BinC: FnOnce(Lev, Self, Self, Arg) -> Res,
        NameC: FnOnce(Name, Lev, Self, Self, Arg) -> Res
;
fn full_move<Arg, Res, NilC, LeafC, BinC, NameC, ArtC>(
        _: Self,
        _: Arg,
        _: NilC,
        _: LeafC,
        _: BinC,
        _: NameC,
        _: ArtC
    ) -> Res
    where
        NilC: FnOnce(Arg) -> Res,
        LeafC: FnOnce(Leaf, Arg) -> Res,
        BinC: FnOnce(Lev, Self, Self, Arg) -> Res,
        NameC: FnOnce(Name, Lev, Self, Self, Arg) -> Res,
        ArtC: FnOnce(&Art<Self>, Arg) -> Res
; fn is_empty(tree: &Self) -> bool { ... }
fn is_nil(tree: &Self) -> bool { ... } }

Required Methods

Provided Methods

Implementors