Skip to main content

ElementEmission

Trait ElementEmission 

Source
pub trait ElementEmission: Sealed + 'static {
    type Step<T>;
    type OutArity<C: Arity>: Arity;

    // Required methods
    fn map_step<T, U>(
        step: Self::Step<T>,
        function: impl Fn(T) -> U,
    ) -> Self::Step<U>;
    fn apply<'a, C: Arity, X: 'a, Y: 'a>(
        container: C::Container<'a, X>,
        function: impl Fn(X) -> Self::Step<Y> + 'a,
    ) -> <Self::OutArity<C> as Arity>::Container<'a, Y>;
    fn default_estimate(input: Estimate) -> Estimate;
}

Required Associated Types§

Required Methods§

Source

fn map_step<T, U>( step: Self::Step<T>, function: impl Fn(T) -> U, ) -> Self::Step<U>

Source

fn apply<'a, C: Arity, X: 'a, Y: 'a>( container: C::Container<'a, X>, function: impl Fn(X) -> Self::Step<Y> + 'a, ) -> <Self::OutArity<C> as Arity>::Container<'a, Y>

Source

fn default_estimate(input: Estimate) -> Estimate

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§