File tree 2 files changed +11
-5
lines changed
library/core/src/iter/traits
2 files changed +11
-5
lines changed Original file line number Diff line number Diff line change 66
66
///
67
67
/// // And now we can use it!
68
68
///
69
- /// let counter = Counter::new();
69
+ /// let mut counter = Counter::new();
70
70
///
71
71
/// assert_eq!(5, counter.len());
72
+ /// let _ = counter.next();
73
+ /// assert_eq!(4, counter.len());
72
74
/// ```
73
75
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
74
76
pub trait ExactSizeIterator : Iterator {
75
- /// Returns the exact length of the iterator.
77
+ /// Returns the exact remaining length of the iterator.
76
78
///
77
79
/// The implementation ensures that the iterator will return exactly `len()`
78
80
/// more times a [`Some(T)`] value, before returning [`None`].
@@ -93,9 +95,11 @@ pub trait ExactSizeIterator: Iterator {
93
95
///
94
96
/// ```
95
97
/// // a finite range knows exactly how many times it will iterate
96
- /// let five = 0..5;
98
+ /// let mut range = 0..5;
97
99
///
98
- /// assert_eq!(5, five.len());
100
+ /// assert_eq!(5, range.len());
101
+ /// let _ = range.next();
102
+ /// assert_eq!(4, range.len());
99
103
/// ```
100
104
#[ inline]
101
105
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
Original file line number Diff line number Diff line change @@ -177,9 +177,11 @@ pub trait Iterator {
177
177
///
178
178
/// ```
179
179
/// let a = [1, 2, 3];
180
- /// let iter = a.iter();
180
+ /// let mut iter = a.iter();
181
181
///
182
182
/// assert_eq!((3, Some(3)), iter.size_hint());
183
+ /// let _ = iter.next();
184
+ /// assert_eq!((2, Some(2)), iter.size_hint());
183
185
/// ```
184
186
///
185
187
/// A more complex example:
You can’t perform that action at this time.
0 commit comments