Improve Iterator::intersperse_ docs

This commit is contained in:
Lukas Lueg 2021-01-13 21:07:59 +01:00
parent 95289889fe
commit 9b2f085110
2 changed files with 16 additions and 8 deletions

View File

@ -2,7 +2,7 @@ use super::Peekable;
/// An iterator adapter that places a separator between all elements.
///
/// This `struct` is created by [`Iterator::intersperse`]. See it's documentation
/// This `struct` is created by [`Iterator::intersperse`]. See its documentation
/// for more information.
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
#[derive(Debug, Clone)]
@ -59,7 +59,7 @@ where
/// An iterator adapter that places a separator between all elements.
///
/// This `struct` is created by [`Iterator::intersperse_with`]. See it's
/// This `struct` is created by [`Iterator::intersperse_with`]. See its
/// documentation for more information.
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
pub struct IntersperseWith<I, G>

View File

@ -571,6 +571,9 @@ pub trait Iterator {
/// Places a copy of `separator` between all elements.
///
/// In case the separator does not implement [`Clone`] or needs to be
/// computed every time, use [`intersperse_with`].
///
/// # Examples
///
/// Basic usage:
@ -578,9 +581,12 @@ pub trait Iterator {
/// ```
/// #![feature(iter_intersperse)]
///
/// let hello = ["Hello", "World"].iter().copied().intersperse(" ").collect::<String>();
/// assert_eq!(hello, "Hello World");
/// let hello = ["Hello", "World", "!"].iter().copied().intersperse(" ").collect::<String>();
/// assert_eq!(hello, "Hello World !");
/// ```
///
/// [`Clone`]: crate::clone::Clone
/// [`intersperse_with`]: Iterator::intersperse_with
#[inline]
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
@ -600,11 +606,13 @@ pub trait Iterator {
/// ```
/// #![feature(iter_intersperse)]
///
/// let src = ["Hello", "to", "all", "people"].iter().copied();
/// let mut separator = [" ❤️ ", " 😀 "].iter().copied().cycle();
/// let src = ["Hello", "to", "all", "people", "!!"].iter().copied();
///
/// let result = src.intersperse_with(|| separator.next().unwrap()).collect::<String>();
/// assert_eq!(result, "Hello ❤️ to 😀 all ❤️ people");
/// let mut happy_emojis = [" ❤️ ", " 😀 "].iter().copied();
/// let separator = || happy_emojis.next().unwrap_or(" 🦀 ");
///
/// let result = src.intersperse_with(separator).collect::<String>();
/// assert_eq!(result, "Hello ❤️ to 😀 all 🦀 people 🦀 !!");
/// ```
#[inline]
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]