Skip to main content

Assemble

Trait Assemble 

Source
pub trait Assemble<Term> {
    type Out;

    // Required method
    fn assemble(&self, term: Term) -> Self::Out;
}
Expand description

Assembles recorded parts into the concrete collector stack, given the terminal stage. Takes &self so one set of parts can assemble many identical chains — stage closures must be Clone (plain closures and closures over Clone/Arc state are).

Required Associated Types§

Source

type Out

The assembled collector stack.

Required Methods§

Source

fn assemble(&self, term: Term) -> Self::Out

Build the stack around term.

Implementors§

Source§

impl<OutF, Prev, G, Term> Assemble<Term> for FlatMapPart<OutF, Prev, G>
where OutF: RecFamily, G: Clone, Prev: Assemble<FlatMap<OutF, G, Term>>,

Source§

type Out = <Prev as Assemble<FlatMap<OutF, G, Term>>>::Out

Source§

impl<Prev, G, Term> Assemble<Term> for InspectPart<Prev, G>
where G: Clone, Prev: Assemble<Inspect<G, Term>>,

Source§

type Out = <Prev as Assemble<Inspect<G, Term>>>::Out

Source§

impl<Prev, G, Term> Assemble<Term> for MapPart<Prev, G>
where G: Clone, Prev: Assemble<Map<G, Term>>,

Source§

type Out = <Prev as Assemble<Map<G, Term>>>::Out

Source§

impl<Prev, G, Term> Assemble<Term> for TryMapPart<Prev, G>
where G: Clone, Prev: Assemble<TryMap<G, Term>>,

Source§

type Out = <Prev as Assemble<TryMap<G, Term>>>::Out

Source§

impl<Prev, P, Term> Assemble<Term> for FilterPart<Prev, P>
where P: Clone, Prev: Assemble<Filter<P, Term>>,

Source§

type Out = <Prev as Assemble<Filter<P, Term>>>::Out

Source§

impl<T> Assemble<T> for Root

Source§

type Out = T