Skip to main content

ElementTransition

Trait ElementTransition 

Source
pub trait ElementTransition<T: ElementShape, E: ElementEmission>: ElementShape {
    type Pipeline<'a>: 'a
       where Self: 'a,
             T: 'a;

    // Required method
    fn apply<'a, C: Arity>(
        values: C::Container<'a, Self::Element<'a>>,
        pipeline: Self::Pipeline<'a>,
    ) -> <E::OutArity<C> as Arity>::Container<'a, T::Element<'a>>;
}

Required Associated Types§

Source

type Pipeline<'a>: 'a where Self: 'a, T: 'a

Required Methods§

Source

fn apply<'a, C: Arity>( values: C::Container<'a, Self::Element<'a>>, pipeline: Self::Pipeline<'a>, ) -> <E::OutArity<C> as Arity>::Container<'a, T::Element<'a>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<I: IndexDomain, V: ValueDomain, W: BareValueDomain, E: ElementEmission> ElementTransition<Bare<W>, E> for Indexed<I, V>

Source§

type Pipeline<'a> = Pipeline<'a, (<I as IndexDomain>::Index<'a>, Result<<V as ValueDomain>::Value<'a>, Box<Failure>>), <E as ElementEmission>::Step<Result<<W as ValueDomain>::Value<'a>, Box<Failure>>>, E>

Source§

impl<I: IndexDomain, V: ValueDomain, W: ValueDomain, E: Retention> ElementTransition<Indexed<I, W>, E> for Indexed<I, V>

Source§

type Pipeline<'a> = Pipeline<'a, (<I as IndexDomain>::Index<'a>, Result<<V as ValueDomain>::Value<'a>, Box<Failure>>), <E as ElementEmission>::Step<Result<<W as ValueDomain>::Value<'a>, Box<Failure>>>, E>

Source§

impl<P: IndexDomain, C: IndexDomain, V: ValueDomain, W: ValueDomain> ElementTransition<Indexed<ExpandedIndex<P, C>, W>, Expanding<Ordered>> for Indexed<P, V>

Source§

type Pipeline<'a> = Pipeline<'a, (<P as IndexDomain>::Index<'a>, <V as ValueDomain>::Value<'a>), Result<Vec<ExpandedChild<'a, C, W>>, Box<Failure>>, Expanding<Ordered>> where Self: 'a, Indexed<ExpandedIndex<P, C>, W>: 'a

Source§

impl<P: IndexDomain, C: IndexDomain, V: ValueDomain, W: ValueDomain> ElementTransition<Indexed<ExpandedIndex<P, C>, W>, Expanding<Unordered>> for Indexed<P, V>

Source§

type Pipeline<'a> = Pipeline<'a, (<P as IndexDomain>::Index<'a>, <V as ValueDomain>::Value<'a>), Result<Vec<ExpandedChild<'a, C, W>>, Box<Failure>>, Expanding<Unordered>> where Self: 'a, Indexed<ExpandedIndex<P, C>, W>: 'a

Source§

impl<V: BareValueDomain, W: BareValueDomain, E: ElementEmission> ElementTransition<Bare<W>, E> for Bare<V>

Source§

type Pipeline<'a> = Pipeline<'a, Result<<V as ValueDomain>::Value<'a>, Box<Failure>>, <E as ElementEmission>::Step<Result<<W as ValueDomain>::Value<'a>, Box<Failure>>>, E>