1
Fork 0

Rollup merge of #98729 - the8472:exactsize-docs, r=thomcc

clarify that ExactSizeIterator::len returns the remaining length

fixes #98721
This commit is contained in:
Matthias Krüger 2022-07-01 06:05:56 +02:00 committed by GitHub
commit 734f21c9e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 5 deletions

View file

@ -66,13 +66,15 @@
/// ///
/// // And now we can use it! /// // And now we can use it!
/// ///
/// let counter = Counter::new(); /// let mut counter = Counter::new();
/// ///
/// assert_eq!(5, counter.len()); /// assert_eq!(5, counter.len());
/// let _ = counter.next();
/// assert_eq!(4, counter.len());
/// ``` /// ```
#[stable(feature = "rust1", since = "1.0.0")] #[stable(feature = "rust1", since = "1.0.0")]
pub trait ExactSizeIterator: Iterator { pub trait ExactSizeIterator: Iterator {
/// Returns the exact length of the iterator. /// Returns the exact remaining length of the iterator.
/// ///
/// The implementation ensures that the iterator will return exactly `len()` /// The implementation ensures that the iterator will return exactly `len()`
/// more times a [`Some(T)`] value, before returning [`None`]. /// more times a [`Some(T)`] value, before returning [`None`].
@ -93,9 +95,11 @@ pub trait ExactSizeIterator: Iterator {
/// ///
/// ``` /// ```
/// // a finite range knows exactly how many times it will iterate /// // a finite range knows exactly how many times it will iterate
/// let five = 0..5; /// let mut range = 0..5;
/// ///
/// assert_eq!(5, five.len()); /// assert_eq!(5, range.len());
/// let _ = range.next();
/// assert_eq!(4, range.len());
/// ``` /// ```
#[inline] #[inline]
#[stable(feature = "rust1", since = "1.0.0")] #[stable(feature = "rust1", since = "1.0.0")]

View file

@ -177,9 +177,11 @@ pub trait Iterator {
/// ///
/// ``` /// ```
/// let a = [1, 2, 3]; /// let a = [1, 2, 3];
/// let iter = a.iter(); /// let mut iter = a.iter();
/// ///
/// assert_eq!((3, Some(3)), iter.size_hint()); /// assert_eq!((3, Some(3)), iter.size_hint());
/// let _ = iter.next();
/// assert_eq!((2, Some(2)), iter.size_hint());
/// ``` /// ```
/// ///
/// A more complex example: /// A more complex example: