Rollup merge of #33265 - tshepang:peek, r=steveklabnik
doc: some `peek` improvements
This commit is contained in:
commit
eef10e6cfc
@ -1198,17 +1198,15 @@ impl<I: ExactSizeIterator> ExactSizeIterator for Peekable<I> {}
|
|||||||
impl<I: Iterator> Peekable<I> {
|
impl<I: Iterator> Peekable<I> {
|
||||||
/// Returns a reference to the next() value without advancing the iterator.
|
/// Returns a reference to the next() value without advancing the iterator.
|
||||||
///
|
///
|
||||||
/// The `peek()` method will return the value that a call to [`next()`] would
|
/// Like [`next()`], if there is a value, it is wrapped in a `Some(T)`.
|
||||||
/// return, but does not advance the iterator. Like [`next()`], if there is
|
/// But if the iteration is over, `None` is returned.
|
||||||
/// a value, it's wrapped in a `Some(T)`, but if the iterator is over, it
|
|
||||||
/// will return `None`.
|
|
||||||
///
|
///
|
||||||
/// [`next()`]: trait.Iterator.html#tymethod.next
|
/// [`next()`]: trait.Iterator.html#tymethod.next
|
||||||
///
|
///
|
||||||
/// Because `peek()` returns reference, and many iterators iterate over
|
/// Because `peek()` returns a reference, and many iterators iterate over
|
||||||
/// references, this leads to a possibly confusing situation where the
|
/// references, there can be a possibly confusing situation where the
|
||||||
/// return value is a double reference. You can see this effect in the
|
/// return value is a double reference. You can see this effect in the
|
||||||
/// examples below, with `&&i32`.
|
/// examples below.
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
@ -1225,13 +1223,13 @@ impl<I: Iterator> Peekable<I> {
|
|||||||
///
|
///
|
||||||
/// assert_eq!(iter.next(), Some(&2));
|
/// assert_eq!(iter.next(), Some(&2));
|
||||||
///
|
///
|
||||||
/// // we can peek() multiple times, the iterator won't advance
|
/// // The iterator does not advance even if we `peek` multiple times
|
||||||
/// assert_eq!(iter.peek(), Some(&&3));
|
/// assert_eq!(iter.peek(), Some(&&3));
|
||||||
/// assert_eq!(iter.peek(), Some(&&3));
|
/// assert_eq!(iter.peek(), Some(&&3));
|
||||||
///
|
///
|
||||||
/// assert_eq!(iter.next(), Some(&3));
|
/// assert_eq!(iter.next(), Some(&3));
|
||||||
///
|
///
|
||||||
/// // after the iterator is finished, so is peek()
|
/// // After the iterator is finished, so is `peek()`
|
||||||
/// assert_eq!(iter.peek(), None);
|
/// assert_eq!(iter.peek(), None);
|
||||||
/// assert_eq!(iter.next(), None);
|
/// assert_eq!(iter.next(), None);
|
||||||
/// ```
|
/// ```
|
||||||
@ -1263,10 +1261,10 @@ impl<I: Iterator> Peekable<I> {
|
|||||||
///
|
///
|
||||||
/// let mut iter = xs.iter().peekable();
|
/// let mut iter = xs.iter().peekable();
|
||||||
///
|
///
|
||||||
/// // there are still elements to iterate over
|
/// // There are still elements to iterate over
|
||||||
/// assert_eq!(iter.is_empty(), false);
|
/// assert_eq!(iter.is_empty(), false);
|
||||||
///
|
///
|
||||||
/// // let's consume the iterator
|
/// // Let's consume the iterator
|
||||||
/// iter.next();
|
/// iter.next();
|
||||||
/// iter.next();
|
/// iter.next();
|
||||||
/// iter.next();
|
/// iter.next();
|
||||||
|
Loading…
Reference in New Issue
Block a user