Skip to content

Commit 5902522

Browse files
committed
Reduce genericity in SkipWhile
1 parent ff60eca commit 5902522

File tree

1 file changed

+15
-8
lines changed
  • src/libcore/iter/adapters

1 file changed

+15
-8
lines changed

src/libcore/iter/adapters/mod.rs

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,16 +1397,23 @@ impl<I: Iterator, P> Iterator for SkipWhile<I, P>
13971397

13981398
#[inline]
13991399
fn next(&mut self) -> Option<I::Item> {
1400+
fn check<'a, T>(
1401+
flag: &'a mut bool,
1402+
pred: &'a mut impl FnMut(&T) -> bool,
1403+
) -> impl FnMut(&T) -> bool + 'a {
1404+
move |x| {
1405+
if *flag || !pred(x) {
1406+
*flag = true;
1407+
true
1408+
} else {
1409+
false
1410+
}
1411+
}
1412+
}
1413+
14001414
let flag = &mut self.flag;
14011415
let pred = &mut self.predicate;
1402-
self.iter.find(move |x| {
1403-
if *flag || !pred(x) {
1404-
*flag = true;
1405-
true
1406-
} else {
1407-
false
1408-
}
1409-
})
1416+
self.iter.find(check(flag, pred))
14101417
}
14111418

14121419
#[inline]

0 commit comments

Comments
 (0)