Rollup merge of #92899 - cameron1024:zip-docs, r=dtolnay

Mention std::iter::zip in Iterator::zip docs

Closes https://github.com/rust-lang/rust/issues/91960

I'm not sure about the wording. I think it's alright, but happy to change.
This commit is contained in:
Matthias Krüger 2022-01-27 22:32:23 +01:00 committed by GitHub
commit 54f357836e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -515,8 +515,44 @@ pub trait Iterator {
/// 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>