Skip to main content

Retention

Trait Retention 

Source
pub trait Retention: ElementEmission {
    type Then<R: Retention>: Retention;

    // Required methods
    fn keep<T>(value: T) -> Self::Step<T>;
    fn absent<T, E>(error: impl FnOnce() -> E) -> Self::Step<Result<T, E>>;
    fn map_step<T, U>(
        step: Self::Step<T>,
        function: impl FnOnce(T) -> U,
    ) -> Self::Step<U>;
    fn collapse<T>(step: Self::Step<T>) -> Option<T>;
    fn and_then<R, T, U, E, F>(
        step: Self::Step<Result<T, E>>,
        function: F,
    ) -> <Self::Then<R> as ElementEmission>::Step<Result<U, E>>
       where R: Retention,
             F: FnOnce(T) -> R::Step<Result<U, E>>;
}

Required Associated Types§

Required Methods§

Source

fn keep<T>(value: T) -> Self::Step<T>

Source

fn absent<T, E>(error: impl FnOnce() -> E) -> Self::Step<Result<T, E>>

Source

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

Source

fn collapse<T>(step: Self::Step<T>) -> Option<T>

Source

fn and_then<R, T, U, E, F>( step: Self::Step<Result<T, E>>, function: F, ) -> <Self::Then<R> as ElementEmission>::Step<Result<U, E>>
where R: Retention, F: FnOnce(T) -> R::Step<Result<U, E>>,

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§