mirror of
https://github.com/fish-shell/fish-shell
synced 2024-11-10 15:14:44 +00:00
Backport is_ok_and
On Rust versions that have it, this will be unused, so ignore the unused import warning.
This commit is contained in:
parent
aa2f817b3b
commit
d7a6c7f66a
5 changed files with 23 additions and 2 deletions
|
@ -2,6 +2,7 @@ use std::pin::Pin;
|
|||
|
||||
use cxx::{CxxWString, UniquePtr};
|
||||
|
||||
#[allow(unused_imports)]
|
||||
use crate::future::IsSomeAnd;
|
||||
use crate::highlight::{HighlightSpec, HighlightSpecListFFI};
|
||||
use crate::wchar::prelude::*;
|
||||
|
|
|
@ -21,8 +21,8 @@ use crate::env::environment::Environment;
|
|||
use crate::env::EnvStack;
|
||||
use crate::expand::INTERNAL_SEPARATOR;
|
||||
use crate::fds::set_cloexec;
|
||||
use crate::future::IsSomeAnd;
|
||||
use crate::future::IsSorted;
|
||||
#[allow(unused_imports)]
|
||||
use crate::future::{IsOkAnd, IsSomeAnd, IsSorted};
|
||||
use crate::global_safety::RelaxedAtomicBool;
|
||||
use crate::highlight::{colorize, highlight_shell, HighlightRole, HighlightSpec};
|
||||
use crate::operation_context::OperationContext;
|
||||
|
|
|
@ -24,6 +24,24 @@ impl<T> IsSomeAnd for Option<T> {
|
|||
}
|
||||
}
|
||||
|
||||
pub trait IsOkAnd {
|
||||
type Type;
|
||||
type Error;
|
||||
#[allow(clippy::wrong_self_convention)]
|
||||
fn is_ok_and(self, s: impl FnOnce(Self::Type) -> bool) -> bool;
|
||||
}
|
||||
|
||||
impl<T, E> IsOkAnd for Result<T, E> {
|
||||
type Type = T;
|
||||
type Error = E;
|
||||
fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool {
|
||||
match self {
|
||||
Ok(v) => f(v),
|
||||
Err(_) => false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub trait IsSorted {
|
||||
type T;
|
||||
fn is_sorted_by(&self, pred: impl Fn(&Self::T, &Self::T) -> Option<std::cmp::Ordering>)
|
||||
|
|
|
@ -11,6 +11,7 @@ use crate::compat::MB_CUR_MAX;
|
|||
use crate::complete::{Completion, CompletionListFfi};
|
||||
use crate::editable_line::EditableLine;
|
||||
use crate::fallback::{fish_wcswidth, fish_wcwidth};
|
||||
#[allow(unused_imports)]
|
||||
use crate::future::IsSomeAnd;
|
||||
use crate::highlight::{highlight_shell, HighlightRole, HighlightSpec};
|
||||
use crate::operation_context::OperationContext;
|
||||
|
|
|
@ -27,6 +27,7 @@ use crate::curses::{term, tparm0, tparm1};
|
|||
use crate::env::{EnvStackRef, Environment, TERM_HAS_XN};
|
||||
use crate::fallback::fish_wcwidth;
|
||||
use crate::flog::FLOGF;
|
||||
#[allow(unused_imports)]
|
||||
use crate::future::IsSomeAnd;
|
||||
use crate::global_safety::RelaxedAtomicBool;
|
||||
use crate::highlight::{HighlightColorResolver, HighlightSpecListFFI};
|
||||
|
|
Loading…
Reference in a new issue