Skip to content

Commit b2b44aa

Browse files
FilterMapOk::next: use find_map
1 parent b19eb9e commit b2b44aa

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

src/adaptors/mod.rs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -982,17 +982,11 @@ where
982982
type Item = Result<U, E>;
983983

984984
fn next(&mut self) -> Option<Self::Item> {
985-
loop {
986-
match self.iter.next() {
987-
Some(Ok(v)) => {
988-
if let Some(v) = (self.f)(v) {
989-
return Some(Ok(v));
990-
}
991-
}
992-
Some(Err(e)) => return Some(Err(e)),
993-
None => return None,
994-
}
995-
}
985+
let f = &mut self.f;
986+
self.iter.find_map(|res| match res {
987+
Ok(t) => f(t).map(Ok),
988+
Err(e) => Some(Err(e)),
989+
})
996990
}
997991

998992
fn size_hint(&self) -> (usize, Option<usize>) {

0 commit comments

Comments
 (0)