#error #result #lift

lift_result

Lifts a fallible function that returns Result<_, E1> into one that returns Result<_, E2>, if E1 can be automatically converted into E2

1 stable release

1.0.1 May 6, 2022

#2 in #lift

MIT/Apache

5KB

lift_result

Lifts a fallible function that fails with error E1, into one that fails with error E2.

I had my own Error type, turning another result into mine was easy and nice

result.map_err(Error::from)

But when I wanted to apply a fallible function via .and_then, I had to do this:

result.and_then(|x| failable(x).map_err(|e| e.into()))

And I didn't like that:

  • too verbose
  • not very readable
  • the compiler should be able to know how to do that

So I wrote this library. Yay, programming! 🎉

Examples

result
    .map_err(Error::from)
    .and_then(lift(failable))

Special thanks

Thank you cargo-readme for generating this README for me.

License: MIT OR Apache-2.0


lib.rs:

Lifts a fallible function that fails with error E1, into one that fails with error E2.

I had my own Error type, turning another result into mine was easy and nice

result.map_err(Error::from)

But when I wanted to apply a fallible function via .and_then, I had to do this:

result.and_then(|x| failable(x).map_err(|e| e.into()))

And I didn't like that:

  • too verbose
  • not very readable
  • the compiler should be able to know how to do that

So I wrote this library. Yay, programming! 🎉

Examples

result
    .map_err(Error::from)
    .and_then(lift(failable))

Special thanks

Thank you cargo-readme for generating this README for me.

No runtime deps