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§
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>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".