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

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

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, 

Loading content...

Provided methods

fn is_empty(tree: &Self) -> bool

fn is_nil(tree: &Self) -> bool

Loading content...

Implementors

impl<Leaf: Debug + Hash + PartialEq + Eq + Clone + 'static> TreeElim<usize, Leaf> for Tree<Leaf>[src]

Loading content...