about summary refs log tree commit diff
diff options
context:
space:
mode:
authorcameron <cameron.studdstreet@gmail.com>2022-01-27 06:47:52 +0000
committercameron <cameron.studdstreet@gmail.com>2022-01-27 06:47:52 +0000
commitf27758e8d7dae117d7989dc555823fc75426fd3e (patch)
tree553f36a6d108170dd618636f5008754108ec97c8
parent02c9e73e6ca7e2bd444d39182f8dee7e2ba4a609 (diff)
downloadrust-f27758e8d7dae117d7989dc555823fc75426fd3e.tar.gz
rust-f27758e8d7dae117d7989dc555823fc75426fd3e.zip
mention std::iter::zip in Iterator::zip docs
-rw-r--r--library/core/src/iter/traits/iterator.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/library/core/src/iter/traits/iterator.rs b/library/core/src/iter/traits/iterator.rs
index 1d947297463..1132409715c 100644
--- a/library/core/src/iter/traits/iterator.rs
+++ b/library/core/src/iter/traits/iterator.rs
@@ -514,9 +514,40 @@ pub trait Iterator {
     /// assert_eq!((2, 'o'), enumerate[2]);
     /// assert_eq!((2, 'o'), zipper[2]);
     /// ```
+    /// If both iterators have roughly equivalent syntax, it may me more readable to use [`zip`]:
+    /// ```
+    /// # use std::iter::zip;
+    /// let a = [1, 2, 3];
+    /// let b = [2, 3, 4];
+    ///
+    /// let mut zipped = zip(
+    ///     a.into_iter().map(|x| x * 2).skip(1),
+    ///     b.into_iter().map(|x| x * 2).skip(1),
+    /// );
+    ///
+    /// assert_eq!(zipped.next(), Some((4, 6)));
+    /// assert_eq!(zipped.next(), Some((6, 8)));
+    /// assert_eq!(zipped.next(), None);
+    /// ```
+    /// compared to:
+    /// ```
+    /// let a = [1, 2, 3];
+    /// let b = [2, 3, 4];
+    ///
+    /// let mut zipped = a
+    ///     .into_iter()
+    ///     .map(|x| x * 2)
+    ///     .skip(1)
+    ///     .zip(b.into_iter().map(|x| x * 2).skip(1));
+    ///
+    /// assert_eq!(zipped.next(), Some((4, 6)));
+    /// assert_eq!(zipped.next(), Some((6, 8)));
+    /// assert_eq!(zipped.next(), None);
+    /// ```
     ///
     /// [`enumerate`]: Iterator::enumerate
     /// [`next`]: Iterator::next
+    /// [`zip`]: crate::iter::zip
     #[inline]
     #[stable(feature = "rust1", since = "1.0.0")]
     fn zip<U>(self, other: U) -> Zip<Self, U::IntoIter>