Add is_err_or to Result utils.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-10-27 04:46:38 +00:00
parent b714f24029
commit a39ef994d2
2 changed files with 19 additions and 0 deletions

View File

@@ -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,

View 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 }
}
}