@@ -49,7 +49,7 @@ impl<'a, T> IntoIterator for &'a mut [T] {
4949/// // First, we need a slice to call the `iter` method on:
5050/// let slice = &[1, 2, 3];
5151///
52- /// // Then we call `iter` on the slice to get the `Iter` struct ,
52+ /// // Then we call `iter` on the slice to get the `Iter` iterator ,
5353/// // and iterate over it:
5454/// for element in slice.iter() {
5555/// println!("{element}");
@@ -107,24 +107,20 @@ impl<'a, T> Iter<'a, T> {
107107
108108 /// Views the underlying data as a subslice of the original data.
109109 ///
110- /// This has the same lifetime as the original slice, and so the
111- /// iterator can continue to be used while this exists.
112- ///
113110 /// # Examples
114111 ///
115112 /// Basic usage:
116113 ///
117114 /// ```
118115 /// // First, we need a slice to call the `iter` method on:
119- /// // struct (`&[usize]` here):
120116 /// let slice = &[1, 2, 3];
121117 ///
122- /// // Then we call `iter` on the slice to get the `Iter` struct :
118+ /// // Then we call `iter` on the slice to get the `Iter` iterator :
123119 /// let mut iter = slice.iter();
124120 /// // Here `as_slice` still returns the whole slice, so this prints "[1, 2, 3]":
125121 /// println!("{:?}", iter.as_slice());
126122 ///
127- /// // Now, we call the `next` method to remove the first element of the iterator:
123+ /// // Now, we call the `next` method to remove the first element from the iterator:
128124 /// iter.next();
129125 /// // Here the iterator does not contain the first element of the slice any more,
130126 /// // so `as_slice` only returns the last two elements of the slice,
@@ -181,7 +177,7 @@ impl<T> AsRef<[T]> for Iter<'_, T> {
181177/// // First, we need a slice to call the `iter_mut` method on:
182178/// let slice = &mut [1, 2, 3];
183179///
184- /// // Then we call `iter_mut` on the slice to get the `IterMut` struct ,
180+ /// // Then we call `iter_mut` on the slice to get the `IterMut` iterator ,
185181/// // iterate over it and increment each element value:
186182/// for element in slice.iter_mut() {
187183/// *element += 1;
@@ -286,25 +282,30 @@ impl<'a, T> IterMut<'a, T> {
286282
287283 /// Views the underlying data as a subslice of the original data.
288284 ///
289- /// To avoid creating `&mut [T]` references that alias, the returned slice
290- /// borrows its lifetime from the iterator the method is applied on.
291- ///
292285 /// # Examples
293286 ///
294287 /// Basic usage:
295288 ///
296289 /// ```
297- /// let mut slice: &mut [usize] = &mut [1, 2, 3];
290+ /// // First, we need a slice to call the `iter_mut` method on:
291+ /// let slice = &mut [1, 2, 3];
298292 ///
299- /// // First, we get the iterator:
293+ /// // Then we call `iter_mut` on the slice to get the `IterMut` iterator:
300294 /// let mut iter = slice.iter_mut();
301- /// // So if we check what the `as_slice` method returns here, we have "[1, 2, 3]":
302- /// assert_eq!( iter.as_slice(), &[1, 2, 3] );
295+ /// // Here `as_slice` still returns the whole slice, so this prints "[1, 2, 3]":
296+ /// println!("{:?}", iter.as_slice());
303297 ///
304- /// // Next, we move to the second element of the slice:
305- /// iter.next();
306- /// // Now `as_slice` returns "[2, 3]":
307- /// assert_eq!(iter.as_slice(), &[2, 3]);
298+ /// // Now, we call the `next` method to remove the first element from the iterator
299+ /// // and increment its value:
300+ /// *iter.next().unwrap() += 1;
301+ /// // Here the iterator does not contain the first element of the slice any more,
302+ /// // so `as_slice` only returns the last two elements of the slice,
303+ /// // and so this prints "[2, 3]":
304+ /// println!("{:?}", iter.as_slice());
305+ ///
306+ /// // The underlying slice still contains three elements, but its first element
307+ /// // was increased by 1, so this prints "[2, 2, 3]":
308+ /// println!("{:?}", slice);
308309 /// ```
309310 #[ must_use]
310311 #[ stable( feature = "slice_iter_mut_as_slice" , since = "1.53.0" ) ]
@@ -315,9 +316,6 @@ impl<'a, T> IterMut<'a, T> {
315316
316317 /// Views the underlying data as a mutable subslice of the original data.
317318 ///
318- /// To avoid creating `&mut [T]` references that alias, the returned slice
319- /// borrows its lifetime from the iterator the method is applied on.
320- ///
321319 /// # Examples
322320 ///
323321 /// Basic usage:
0 commit comments