macro_rules! try_ok_or_else {
($result:expr, || $closure:expr) => { ... };
}
Expand description
An analog to Result::map_err
followed by a ?
but without a closure.
use macro_map::try_ok_or_else;
fn myfn() -> Result<(), i64> {
let myoption: Option<&str> = None;
try_ok_or_else!(myoption, || 123);
Ok(())
}
let mapped = myfn();
assert_eq!(mapped, Err(123));
Or with postfix-macros
:
use macro_map::try_ok_or_else;
use postfix_macros::postfix_macros;
fn myfn() -> Result<(), i64> {
postfix_macros! {
let myoption: Option<&str> = None;
myoption.try_ok_or_else!(|| 123);
Ok(())
}
}
let mapped = myfn();
assert_eq!(mapped, Err(123));