Skip to content

Commit d7c072b

Browse files
committed
Reduce genericity in SkipWhile
1 parent 7548974 commit d7c072b

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
@@ -1325,16 +1325,23 @@ impl<I: Iterator, P> Iterator for SkipWhile<I, P>
13251325

13261326
#[inline]
13271327
fn next(&mut self) -> Option<I::Item> {
1328+
fn check<'a, T>(
1329+
flag: &'a mut bool,
1330+
pred: &'a mut impl FnMut(&T) -> bool,
1331+
) -> impl FnMut(&T) -> bool + 'a {
1332+
move |x| {
1333+
if *flag || !pred(x) {
1334+
*flag = true;
1335+
true
1336+
} else {
1337+
false
1338+
}
1339+
}
1340+
}
1341+
13281342
let flag = &mut self.flag;
13291343
let pred = &mut self.predicate;
1330-
self.iter.find(move |x| {
1331-
if *flag || !pred(x) {
1332-
*flag = true;
1333-
true
1334-
} else {
1335-
false
1336-
}
1337-
})
1344+
self.iter.find(check(flag, pred))
13381345
}
13391346

13401347
#[inline]

0 commit comments

Comments
 (0)