Skip to content

Commit

Permalink
Rollup merge of #83272 - kornelski:takedocs, r=dtolnay
Browse files Browse the repository at this point in the history
Clarify non-exact length in the Iterator::take documentation

There's an example which demonstrates incomplete length case, but it'd be best to explain it right from the start.
  • Loading branch information
Dylan-DPC authored Mar 22, 2021
2 parents 83faac9 + 6cfdc38 commit f441c2a
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions library/core/src/iter/traits/iterator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1228,7 +1228,11 @@ pub trait Iterator {

/// Creates an iterator that skips the first `n` elements.
///
/// After they have been consumed, the rest of the elements are yielded.
/// `skip(n)` skips elements until `n` elements are skipped or the end of the
/// iterator is reached (whichever happens first). After that, all the remaining
/// elements are yielded. In particular, if the original iterator is too short,
/// then the returned iterator is empty.
///
/// Rather than overriding this method directly, instead override the `nth` method.
///
/// # Examples
Expand All @@ -1252,7 +1256,14 @@ pub trait Iterator {
Skip::new(self, n)
}

/// Creates an iterator that yields its first `n` elements.
/// Creates an iterator that yields the first `n` elements, or fewer
/// if the underlying iterator ends sooner.
///
/// `take(n)` yields elements until `n` elements are yielded or the end of
/// the iterator is reached (whichever happens first).
/// The returned iterator is a prefix of length `n` if the original iterator
/// contains at least `n` elements, otherwise it contains all of the
/// (fewer than `n`) elements of the original iterator.
///
/// # Examples
///
Expand Down

0 comments on commit f441c2a

Please sign in to comment.