Skip to main content

ado_

Macro ado_ 

Source
macro_rules! ado_ {
    ($F:ty; $x:ident = $e:expr; yield $body:expr) => { ... };
    ($F:ty; $x1:ident = $e1:expr; $x2:ident = $e2:expr; yield $body:expr) => { ... };
    ($F:ty;
        $x1:ident = $e1:expr;
        $x2:ident = $e2:expr;
        $x3:ident = $e3:expr;
        yield $body:expr
    ) => { ... };
    ($F:ty;
        $x1:ident = $e1:expr;
        $x2:ident = $e2:expr;
        $x3:ident = $e3:expr;
        $x4:ident = $e4:expr;
        yield $body:expr
    ) => { ... };
}
Expand description

Applicative do-notation sugar.

Collects independent bindings and combines them with ap/fmap. Supports 1–4 bindings followed by yield expr.

§Example

ado_! { OptionF;
    x = Some(1);
    y = Some(2);
    yield x + y
}