#[inline]
fn next(&mut self) -> Option<I::Item> {
- for x in self.iter.by_ref() {
+ for x in &mut self.iter {
if (self.predicate)(&x) {
return Some(x);
}
}
#[inline]
- fn count(self) -> usize {
- let (mut c, mut predicate, mut iter) = (0, self.predicate, self.iter);
- for x in iter.by_ref() {
- // branchless count
- c += (&mut predicate)(&x) as usize;
+ fn count(mut self) -> usize {
+ let mut count = 0;
+ for x in &mut self.iter {
+ count += (self.predicate)(&x) as usize;
}
- c
+ count
}
}