inner::ok! [] [src]

macro_rules! ok {
    ($x:expr, if $i:path, else |$e:ident| $b:block) => { ... };
    ($x:expr, if $i:path, else $b:block) => { ... };
    ($x:expr, if $i:path, or |$e:ident| $b:block) => { ... };
    ($x:expr, if $i:path, or $b:block) => { ... };
    ($x:expr, if $i:path) => { ... };
}

Converts your enum to an Result.

Examples

assert_eq!(ok!(Fruit::Apple(15), if Fruit::Apple), Ok(15));
assert_eq!(ok!(Fruit::Orange(5), if Fruit::Apple), Err(Fruit::Orange(5)));

assert_eq!(ok!(Fruit::Orange(5), if Fruit::Apple, or {75}), Err(75));
assert_eq!(ok!(Fruit::Orange(5), if Fruit::Apple, else {Err(75)}), Err(75));