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

Implementors