Skip to content

Commit 91f9618

Browse files
axelkarphimuemue
authored andcommitted
Add note about Result to find_or_last and find_or_first
See GH-983
1 parent e2a0a6e commit 91f9618

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/lib.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1999,6 +1999,15 @@ pub trait Itertools: Iterator {
19991999
/// assert_eq!(numbers.iter().find_or_last(|&&x| x > 5), Some(&4));
20002000
/// assert_eq!(numbers.iter().find_or_last(|&&x| x > 2), Some(&3));
20012001
/// assert_eq!(std::iter::empty::<i32>().find_or_last(|&x| x > 5), None);
2002+
///
2003+
/// // An iterator of Results can return the first Ok or the last Err:
2004+
/// let input = vec![Err(()), Ok(11), Err(()), Ok(22)];
2005+
/// assert_eq!(input.into_iter().find_or_last(Result::is_ok), Some(Ok(11)));
2006+
///
2007+
/// let input: Vec<Result<(), i32>> = vec![Err(11), Err(22)];
2008+
/// assert_eq!(input.into_iter().find_or_last(Result::is_ok), Some(Err(22)));
2009+
///
2010+
/// assert_eq!(std::iter::empty::<Result<(), i32>>().find_or_last(Result::is_ok), None);
20022011
/// ```
20032012
fn find_or_last<P>(mut self, mut predicate: P) -> Option<Self::Item>
20042013
where
@@ -2027,6 +2036,15 @@ pub trait Itertools: Iterator {
20272036
/// assert_eq!(numbers.iter().find_or_first(|&&x| x > 5), Some(&1));
20282037
/// assert_eq!(numbers.iter().find_or_first(|&&x| x > 2), Some(&3));
20292038
/// assert_eq!(std::iter::empty::<i32>().find_or_first(|&x| x > 5), None);
2039+
///
2040+
/// // An iterator of Results can return the first Ok or the first Err:
2041+
/// let input = vec![Err(()), Ok(11), Err(()), Ok(22)];
2042+
/// assert_eq!(input.into_iter().find_or_first(Result::is_ok), Some(Ok(11)));
2043+
///
2044+
/// let input: Vec<Result<(), i32>> = vec![Err(11), Err(22)];
2045+
/// assert_eq!(input.into_iter().find_or_first(Result::is_ok), Some(Err(11)));
2046+
///
2047+
/// assert_eq!(std::iter::empty::<Result<(), i32>>().find_or_first(Result::is_ok), None);
20302048
/// ```
20312049
fn find_or_first<P>(mut self, mut predicate: P) -> Option<Self::Item>
20322050
where

0 commit comments

Comments
 (0)