diff --git a/libimagerror/src/iter.rs b/libimagerror/src/iter.rs index 473d3262..0297bc6a 100644 --- a/libimagerror/src/iter.rs +++ b/libimagerror/src/iter.rs @@ -38,13 +38,7 @@ impl Iterator for OnErr where #[inline] fn next(&mut self) -> Option { - match self.iter.next() { - Some(Err(e)) => { - (self.f)(&e); - Some(Err(e)) - }, - other => other - } + self.iter.next().map(|r| r.map_err(|e| { (self.f)(&e); e })) } #[inline] @@ -65,13 +59,7 @@ impl DoubleEndedIterator for OnErr where { #[inline] fn next_back(&mut self) -> Option { - match self.iter.next_back() { - Some(Err(e)) => { - (self.f)(&e); - Some(Err(e)) - }, - other => other - } + self.iter.next_back().map(|r| r.map_err(|e| { (self.f)(&e); e })) } }