Auto merge of #34425 - tbu-:pr_len_instead_of_size_hint, r=alexcrichton
Use `len` instead of `size_hint` where appropiate This makes it clearer that we're not just looking for a lower bound but rather know that the iterator is an `ExactSizeIterator`.
This commit is contained in:
commit
4b89debc7b
6 changed files with 15 additions and 16 deletions
|
@ -433,7 +433,7 @@ impl<'a> Iterator for Chars<'a> {
|
|||
|
||||
#[inline]
|
||||
fn size_hint(&self) -> (usize, Option<usize>) {
|
||||
let (len, _) = self.iter.size_hint();
|
||||
let len = self.iter.len();
|
||||
// `(len + 3)` can't overflow, because we know that the `slice::Iter`
|
||||
// belongs to a slice in memory which has a maximum length of
|
||||
// `isize::MAX` (that's well below `usize::MAX`).
|
||||
|
@ -480,12 +480,12 @@ impl<'a> Iterator for CharIndices<'a> {
|
|||
|
||||
#[inline]
|
||||
fn next(&mut self) -> Option<(usize, char)> {
|
||||
let (pre_len, _) = self.iter.iter.size_hint();
|
||||
let pre_len = self.iter.iter.len();
|
||||
match self.iter.next() {
|
||||
None => None,
|
||||
Some(ch) => {
|
||||
let index = self.front_offset;
|
||||
let (len, _) = self.iter.iter.size_hint();
|
||||
let len = self.iter.iter.len();
|
||||
self.front_offset += pre_len - len;
|
||||
Some((index, ch))
|
||||
}
|
||||
|
@ -505,8 +505,7 @@ impl<'a> DoubleEndedIterator for CharIndices<'a> {
|
|||
match self.iter.next_back() {
|
||||
None => None,
|
||||
Some(ch) => {
|
||||
let (len, _) = self.iter.iter.size_hint();
|
||||
let index = self.front_offset + len;
|
||||
let index = self.front_offset + self.iter.iter.len();
|
||||
Some((index, ch))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue