macro_map

Macro try_map_err

Source
macro_rules! try_map_err {
    ($result:expr, |$err:pat_param| $closure:expr) => { ... };
}
Expand description

An analog to Result::map_err followed by a ? but without a closure.

use macro_map::try_map_err;

fn myfn() -> Result<(), i64> {
    let myresult: Result<&str, &str> = Err("hello");
    try_map_err!(myresult, |myerr| 123);
    Ok(())
}

let mapped = myfn();

assert_eq!(mapped, Err(123));

Or with postfix-macros:

use macro_map::try_map_err;
use postfix_macros::postfix_macros;

fn myfn() -> Result<(), i64> {
    postfix_macros! {
        let myresult: Result<&str, &str> = Err("hello");
        myresult.try_map_err!(|myerr| 123);
        Ok(())
    }
}


let mapped = myfn();

assert_eq!(mapped, Err(123));