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

pub trait RoseElim<Leaf, Branch>: Debug + Clone + Hash + PartialEq + Eq {
    type Children: ListElim<Self>;
    fn elim<Arg, Res, LeafFn, BranchFn, NameFn>(
        _: Self,
        _: Arg,
        _: LeafFn,
        _: BranchFn,
        _: NameFn
    ) -> Res
    where
        LeafFn: FnOnce(Leaf, Arg) -> Res,
        BranchFn: FnOnce(Branch, Self::Children, Arg) -> Res,
        NameFn: FnOnce(Name, Self, Arg) -> Res
; }

Rose Trees: A tree with arbitrary branching at each node. See also, Definition 2 (page 2) of [Parallel Implementation of Tree Skeletons, by D.B. Skillicorn 1995.] (http://ftp.qucis.queensu.ca/TechReports/Reports/1995-380.pdf)

Associated Types

type Children: ListElim<Self>

Loading content...

Required methods

fn elim<Arg, Res, LeafFn, BranchFn, NameFn>(
    _: Self,
    _: Arg,
    _: LeafFn,
    _: BranchFn,
    _: NameFn
) -> Res where
    LeafFn: FnOnce(Leaf, Arg) -> Res,
    BranchFn: FnOnce(Branch, Self::Children, Arg) -> Res,
    NameFn: FnOnce(Name, Self, Arg) -> Res, 

Loading content...

Implementors

Loading content...