diff --git a/src/adaptors/mod.rs b/src/adaptors/mod.rs index 29b7ca133..c9b445e0a 100644 --- a/src/adaptors/mod.rs +++ b/src/adaptors/mod.rs @@ -1074,28 +1074,31 @@ where I::Item: Into, {} -/// An iterator adapter to apply a transformation within a nested `Result`. +#[deprecated(note="Use MapOk instead", since="0.10")] +pub type MapResults = MapOk; + +/// An iterator adapter to apply a transformation within a nested `Result::Ok`. /// -/// See [`.map_results()`](../trait.Itertools.html#method.map_results) for more information. +/// See [`.map_ok()`](../trait.Itertools.html#method.map_ok) for more information. #[derive(Clone)] #[must_use = "iterator adaptors are lazy and do nothing unless consumed"] -pub struct MapResults { +pub struct MapOk { iter: I, f: F } -/// Create a new `MapResults` iterator. -pub fn map_results(iter: I, f: F) -> MapResults +/// Create a new `MapOk` iterator. +pub fn map_ok(iter: I, f: F) -> MapOk where I: Iterator>, F: FnMut(T) -> U, { - MapResults { + MapOk { iter, f, } } -impl Iterator for MapResults +impl Iterator for MapOk where I: Iterator>, F: FnMut(T) -> U, { @@ -1124,28 +1127,28 @@ impl Iterator for MapResults } } -/// An iterator adapter to filter values within a nested `Result`. +/// An iterator adapter to filter values within a nested `Result::Ok`. /// -/// See [`.filter_results()`](../trait.Itertools.html#method.filter_results) for more information. +/// See [`.filter_ok()`](../trait.Itertools.html#method.filter_ok) for more information. #[derive(Clone)] #[must_use = "iterator adaptors are lazy and do nothing unless consumed"] -pub struct FilterResults { +pub struct FilterOk { iter: I, f: F } -/// Create a new `FilterResults` iterator. -pub fn filter_results(iter: I, f: F) -> FilterResults +/// Create a new `FilterOk` iterator. +pub fn filter_ok(iter: I, f: F) -> FilterOk where I: Iterator>, F: FnMut(&T) -> bool, { - FilterResults { + FilterOk { iter, f, } } -impl Iterator for FilterResults +impl Iterator for FilterOk where I: Iterator>, F: FnMut(&T) -> bool, { @@ -1188,12 +1191,11 @@ impl Iterator for FilterResults } } -/// An iterator adapter to filter and apply a transformation on values within a nested `Result`. +/// An iterator adapter to filter and apply a transformation on values within a nested `Result::Ok`. /// -/// See [`.filter_map_results()`](../trait.Itertools.html#method.filter_map_results) for more information. -#[derive(Clone)] +/// See [`.filter_map_ok()`](../trait.Itertools.html#method.filter_map_ok) for more information. #[must_use = "iterator adaptors are lazy and do nothing unless consumed"] -pub struct FilterMapResults { +pub struct FilterMapOk { iter: I, f: F } @@ -1206,18 +1208,18 @@ fn transpose_result(result: Result, E>) -> Option> } } -/// Create a new `FilterResults` iterator. -pub fn filter_map_results(iter: I, f: F) -> FilterMapResults +/// Create a new `FilterOk` iterator. +pub fn filter_map_ok(iter: I, f: F) -> FilterMapOk where I: Iterator>, F: FnMut(T) -> Option, { - FilterMapResults { + FilterMapOk { iter, f, } } -impl Iterator for FilterMapResults +impl Iterator for FilterMapOk where I: Iterator>, F: FnMut(T) -> Option, { diff --git a/src/lib.rs b/src/lib.rs index 5c3b7ded4..20cb4f4de 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -80,12 +80,13 @@ pub mod structs { DedupBy, Interleave, InterleaveShortest, - FilterMapResults, - FilterResults, + FilterMapOk, + FilterOk, Product, PutBack, Batching, MapInto, + MapOk, MapResults, Merge, MergeBy, @@ -721,6 +722,14 @@ pub trait Itertools : Iterator { adaptors::map_into(self) } + #[deprecated(note="Use .map_ok() instead", since="0.10")] + fn map_results(self, f: F) -> MapOk + where Self: Iterator> + Sized, + F: FnMut(T) -> U, + { + self.map_ok(f) + } + /// Return an iterator adaptor that applies the provided closure /// to every `Result::Ok` value. `Result::Err` values are /// unchanged. @@ -729,14 +738,14 @@ pub trait Itertools : Iterator { /// use itertools::Itertools; /// /// let input = vec![Ok(41), Err(false), Ok(11)]; - /// let it = input.into_iter().map_results(|i| i + 1); + /// let it = input.into_iter().map_ok(|i| i + 1); /// itertools::assert_equal(it, vec![Ok(42), Err(false), Ok(12)]); /// ``` - fn map_results(self, f: F) -> MapResults + fn map_ok(self, f: F) -> MapOk where Self: Iterator> + Sized, F: FnMut(T) -> U, { - adaptors::map_results(self, f) + adaptors::map_ok(self, f) } /// Return an iterator adaptor that filters every `Result::Ok` @@ -747,14 +756,14 @@ pub trait Itertools : Iterator { /// use itertools::Itertools; /// /// let input = vec![Ok(22), Err(false), Ok(11)]; - /// let it = input.into_iter().filter_results(|&i| i > 20); + /// let it = input.into_iter().filter_ok(|&i| i > 20); /// itertools::assert_equal(it, vec![Ok(22), Err(false)]); /// ``` - fn filter_results(self, f: F) -> FilterResults + fn filter_ok(self, f: F) -> FilterOk where Self: Iterator> + Sized, F: FnMut(&T) -> bool, { - adaptors::filter_results(self, f) + adaptors::filter_ok(self, f) } /// Return an iterator adaptor that filters and transforms every @@ -765,14 +774,14 @@ pub trait Itertools : Iterator { /// use itertools::Itertools; /// /// let input = vec![Ok(22), Err(false), Ok(11)]; - /// let it = input.into_iter().filter_map_results(|i| if i > 20 { Some(i * 2) } else { None }); + /// let it = input.into_iter().filter_map_ok(|i| if i > 20 { Some(i * 2) } else { None }); /// itertools::assert_equal(it, vec![Ok(44), Err(false)]); /// ``` - fn filter_map_results(self, f: F) -> FilterMapResults + fn filter_map_ok(self, f: F) -> FilterMapOk where Self: Iterator> + Sized, F: FnMut(T) -> Option, { - adaptors::filter_map_results(self, f) + adaptors::filter_map_ok(self, f) } /// Return an iterator adaptor that merges the two base iterators in @@ -1761,6 +1770,14 @@ pub trait Itertools : Iterator { format::new_format(self, sep, format) } + #[deprecated(note="Use .fold_ok() instead", since="0.10")] + fn fold_results(&mut self, mut start: B, mut f: F) -> Result + where Self: Iterator>, + F: FnMut(B, A) -> B + { + self.fold_ok(start, f) + } + /// Fold `Result` values from an iterator. /// /// Only `Ok` values are folded. If no error is encountered, the folded @@ -1793,17 +1810,17 @@ pub trait Itertools : Iterator { /// assert_eq!( /// values.iter() /// .map(Ok::<_, ()>) - /// .fold_results(0, Add::add), + /// .fold_ok(0, Add::add), /// Ok(3) /// ); /// assert!( /// values.iter() /// .map(|&x| if x >= 0 { Ok(x) } else { Err("Negative number") }) - /// .fold_results(0, Add::add) + /// .fold_ok(0, Add::add) /// .is_err() /// ); /// ``` - fn fold_results(&mut self, mut start: B, mut f: F) -> Result + fn fold_ok(&mut self, mut start: B, mut f: F) -> Result where Self: Iterator>, F: FnMut(B, A) -> B { @@ -1822,7 +1839,7 @@ pub trait Itertools : Iterator { /// value is returned inside `Some`. Otherwise, the operation terminates /// and returns `None`. No iterator elements are consumed after the `None`. /// - /// This is the `Option` equivalent to `fold_results`. + /// This is the `Option` equivalent to `fold_ok`. /// /// ``` /// use std::ops::Add;