Trait adapton::catalog::collections::RoseElim
[−]
[src]
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.
Associated Types
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,
_: 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,