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
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,
_: 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,
_: &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,
_: 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,
_: 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,