Trait adapton::catalog::collections::trie::TrieElim
[−]
[src]
pub trait TrieElim<X>: Debug + Hash + PartialEq + Eq + Clone + 'static { fn find(_: &Self, _: &X, _: i64) -> Option<X>; fn is_empty(_: &Self) -> bool; fn split_atomic(_: Self) -> Self; fn elim<Res, NilC, LeafC, BinC, RootC, NameC>(
_: Self,
_: NilC,
_: LeafC,
_: BinC,
_: RootC,
_: NameC
) -> Res
where
NilC: FnOnce(BS) -> Res,
LeafC: FnOnce(BS, X) -> Res,
BinC: FnOnce(BS, Self, Self) -> Res,
RootC: FnOnce(Meta, Self) -> Res,
NameC: FnOnce(Name, Self) -> Res; fn elim_arg<Arg, Res, NilC, LeafC, BinC, RootC, NameC>(
_: Self,
_: Arg,
_: NilC,
_: LeafC,
_: BinC,
_: RootC,
_: NameC
) -> Res
where
NilC: FnOnce(BS, Arg) -> Res,
LeafC: FnOnce(BS, X, Arg) -> Res,
BinC: FnOnce(BS, Self, Self, Arg) -> Res,
RootC: FnOnce(Meta, Self, Arg) -> Res,
NameC: FnOnce(Name, Self, Arg) -> Res; fn elim_ref<Res, NilC, LeafC, BinC, RootC, NameC>(
_: &Self,
_: NilC,
_: LeafC,
_: BinC,
_: RootC,
_: NameC
) -> Res
where
NilC: FnOnce(&BS) -> Res,
LeafC: FnOnce(&BS, &X) -> Res,
BinC: FnOnce(&BS, &Self, &Self) -> Res,
RootC: FnOnce(&Meta, &Self) -> Res,
NameC: FnOnce(&Name, &Self) -> Res; }
Required Methods
fn find(_: &Self, _: &X, _: i64) -> Option<X>
fn is_empty(_: &Self) -> bool
fn split_atomic(_: Self) -> Self
fn elim<Res, NilC, LeafC, BinC, RootC, NameC>(
_: Self,
_: NilC,
_: LeafC,
_: BinC,
_: RootC,
_: NameC
) -> Res where
NilC: FnOnce(BS) -> Res,
LeafC: FnOnce(BS, X) -> Res,
BinC: FnOnce(BS, Self, Self) -> Res,
RootC: FnOnce(Meta, Self) -> Res,
NameC: FnOnce(Name, Self) -> Res,
_: Self,
_: NilC,
_: LeafC,
_: BinC,
_: RootC,
_: NameC
) -> Res where
NilC: FnOnce(BS) -> Res,
LeafC: FnOnce(BS, X) -> Res,
BinC: FnOnce(BS, Self, Self) -> Res,
RootC: FnOnce(Meta, Self) -> Res,
NameC: FnOnce(Name, Self) -> Res,
fn elim_arg<Arg, Res, NilC, LeafC, BinC, RootC, NameC>(
_: Self,
_: Arg,
_: NilC,
_: LeafC,
_: BinC,
_: RootC,
_: NameC
) -> Res where
NilC: FnOnce(BS, Arg) -> Res,
LeafC: FnOnce(BS, X, Arg) -> Res,
BinC: FnOnce(BS, Self, Self, Arg) -> Res,
RootC: FnOnce(Meta, Self, Arg) -> Res,
NameC: FnOnce(Name, Self, Arg) -> Res,
_: Self,
_: Arg,
_: NilC,
_: LeafC,
_: BinC,
_: RootC,
_: NameC
) -> Res where
NilC: FnOnce(BS, Arg) -> Res,
LeafC: FnOnce(BS, X, Arg) -> Res,
BinC: FnOnce(BS, Self, Self, Arg) -> Res,
RootC: FnOnce(Meta, Self, Arg) -> Res,
NameC: FnOnce(Name, Self, Arg) -> Res,
fn elim_ref<Res, NilC, LeafC, BinC, RootC, NameC>(
_: &Self,
_: NilC,
_: LeafC,
_: BinC,
_: RootC,
_: NameC
) -> Res where
NilC: FnOnce(&BS) -> Res,
LeafC: FnOnce(&BS, &X) -> Res,
BinC: FnOnce(&BS, &Self, &Self) -> Res,
RootC: FnOnce(&Meta, &Self) -> Res,
NameC: FnOnce(&Name, &Self) -> Res,
_: &Self,
_: NilC,
_: LeafC,
_: BinC,
_: RootC,
_: NameC
) -> Res where
NilC: FnOnce(&BS) -> Res,
LeafC: FnOnce(&BS, &X) -> Res,
BinC: FnOnce(&BS, &Self, &Self) -> Res,
RootC: FnOnce(&Meta, &Self) -> Res,
NameC: FnOnce(&Name, &Self) -> Res,