]> git.lizzy.rs Git - rust.git/commitdiff
Expand docs on Peekable::peek_mut
authorLukas Lueg <lukas.lueg@gmail.com>
Fri, 27 Nov 2020 20:46:39 +0000 (21:46 +0100)
committerLukas Lueg <lukas.lueg@gmail.com>
Fri, 27 Nov 2020 21:50:22 +0000 (22:50 +0100)
library/core/src/iter/adapters/peekable.rs

index ebdc2555db27a3f4e9c344f30dd15369b2097ddc..2f8b9653c59da0029e6af0adec5a4909201c43c9 100644 (file)
@@ -230,20 +230,24 @@ pub fn peek(&mut self) -> Option<&I::Item> {
     ///
     /// # Examples
     ///
+    /// Basic usage:
+    ///
     /// ```
     /// #![feature(peekable_peek_mut)]
     /// let mut iter = [1, 2, 3].iter().peekable();
     ///
+    /// // Like with `peek()`, we can see into the future without advancing the iterator.
+    /// assert_eq!(iter.peek_mut(), Some(&mut &1));
     /// assert_eq!(iter.peek_mut(), Some(&mut &1));
     /// assert_eq!(iter.next(), Some(&1));
     ///
-    /// // Peek into the iterator and modify the value which will be returned next
-    /// if let Some(mut p) = iter.peek_mut() {
-    ///     if *p == &2 {
-    ///         *p = &5;
-    ///     }
+    /// // Peek into the iterator and set the value behind the mutable reference.
+    /// if let Some(p) = iter.peek_mut() {
+    ///     assert_eq!(*p, &2);
+    ///     *p = &5;
     /// }
     ///
+    /// // The value we put in reappears as the iterator continues.
     /// assert_eq!(iter.collect::<Vec<_>>(), vec![&5, &3]);
     /// ```
     #[inline]