pub trait ResultOptionExt<T, E, F>{
// Required method
fn inner_ok_or_else(self, f: F) -> Result<T, E>;
}
Expand description
Extension trait for doing Result<Option<T>, E>
-> Result<T, E>
Required Methods§
Sourcefn inner_ok_or_else(self, f: F) -> Result<T, E>
fn inner_ok_or_else(self, f: F) -> Result<T, E>
Apply Option::or_else on option values in wrapped in
Result::Ok
.
use resiter::ok_or_else::ResultOptionExt;
let res = Ok(Some(1));
let unwrapped = res.inner_ok_or_else(|| "else this");
assert_eq!(unwrapped, Ok(1));
If the value is None
the result will fail with the provided
error.
use resiter::ok_or_else::ResultOptionExt;
let res = Ok(None);
let unwrapped: Result<i32, &'static str> = res.inner_ok_or_else(|| "else this");
assert_eq!(unwrapped, Err("else this"));