Trait EnvIO

Source
pub trait EnvIO {
    type Out;

    // Required method
    fn run(self) -> Self::Out;

    // Provided method
    fn flat_map<OutEnv, F>(self, f: F) -> FlatMap<Self, F>
       where Self: Sized,
             OutEnv: EnvIO,
             F: Fn(Self::Out) -> OutEnv { ... }
}

Required Associated Types§

Required Methods§

Source

fn run(self) -> Self::Out

Provided Methods§

Source

fn flat_map<OutEnv, F>(self, f: F) -> FlatMap<Self, F>
where Self: Sized, OutEnv: EnvIO, F: Fn(Self::Out) -> OutEnv,

Implementors§

Source§

impl<Env: EnvIO, OutEnv: EnvIO, F> EnvIO for FlatMap<Env, F>
where F: Fn(Env::Out) -> OutEnv,

Source§

type Out = <OutEnv as EnvIO>::Out

Source§

impl<Out0, F: Fn() -> Out0> EnvIO for Effect<Out0, F>

Source§

type Out = Out0