add unwrap_or_err to result

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk 2024-11-11 20:33:56 +00:00
parent 08a4e931a0
commit 9790a6edc9
2 changed files with 17 additions and 0 deletions

View file

@ -0,0 +1,15 @@
use std::convert::identity;
use super::Result;
/// Returns the Ok value or the Err value. Available when the Ok and Err types
/// are the same. This is a way to default the result using the specific Err
/// value rather than unwrap_or_default() using Ok's default.
pub trait UnwrapOrErr<T> {
fn unwrap_or_err(self) -> T;
}
impl<T> UnwrapOrErr<T> for Result<T, T> {
#[inline]
fn unwrap_or_err(self) -> T { self.unwrap_or_else(identity::<T>) }
}