Add is_err_or to Result utils.
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -4,6 +4,7 @@ mod filter;
|
||||
mod flat_ok;
|
||||
mod inspect_log;
|
||||
mod into_is_ok;
|
||||
mod is_err_or;
|
||||
mod log_debug_err;
|
||||
mod log_err;
|
||||
mod map_expect;
|
||||
@@ -19,6 +20,7 @@ pub use self::{
|
||||
flat_ok::FlatOk,
|
||||
inspect_log::{ErrDebugLog, ErrLog},
|
||||
into_is_ok::IntoIsOk,
|
||||
is_err_or::IsErrOr,
|
||||
log_debug_err::LogDebugErr,
|
||||
log_err::LogErr,
|
||||
map_expect::MapExpect,
|
||||
|
||||
17
src/core/utils/result/is_err_or.rs
Normal file
17
src/core/utils/result/is_err_or.rs
Normal file
@@ -0,0 +1,17 @@
|
||||
#![allow(clippy::wrong_self_convention)]
|
||||
|
||||
use super::Result;
|
||||
|
||||
pub trait IsErrOr<T> {
|
||||
fn is_err_or<F: FnOnce(T) -> bool>(self, f: F) -> bool;
|
||||
}
|
||||
|
||||
impl<T, E> IsErrOr<T> for Result<T, E> {
|
||||
#[inline]
|
||||
fn is_err_or<F>(self, f: F) -> bool
|
||||
where
|
||||
F: FnOnce(T) -> bool,
|
||||
{
|
||||
if let Ok(t) = self { f(t) } else { true }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user