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 flat_ok;
|
||||||
mod inspect_log;
|
mod inspect_log;
|
||||||
mod into_is_ok;
|
mod into_is_ok;
|
||||||
|
mod is_err_or;
|
||||||
mod log_debug_err;
|
mod log_debug_err;
|
||||||
mod log_err;
|
mod log_err;
|
||||||
mod map_expect;
|
mod map_expect;
|
||||||
@@ -19,6 +20,7 @@ pub use self::{
|
|||||||
flat_ok::FlatOk,
|
flat_ok::FlatOk,
|
||||||
inspect_log::{ErrDebugLog, ErrLog},
|
inspect_log::{ErrDebugLog, ErrLog},
|
||||||
into_is_ok::IntoIsOk,
|
into_is_ok::IntoIsOk,
|
||||||
|
is_err_or::IsErrOr,
|
||||||
log_debug_err::LogDebugErr,
|
log_debug_err::LogDebugErr,
|
||||||
log_err::LogErr,
|
log_err::LogErr,
|
||||||
map_expect::MapExpect,
|
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