Skip to content

Commit bebd57d

Browse files
committed
Simplify iterator logic for Fuse
1 parent e326aa1 commit bebd57d

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

src/libcore/iter.rs

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2174,13 +2174,10 @@ impl<I> Iterator for Fuse<I> where I: Iterator {
21742174
if self.done {
21752175
None
21762176
} else {
2177-
match self.iter.next() {
2178-
None => {
2179-
self.done = true;
2180-
None
2181-
}
2182-
x => x
2183-
}
2177+
self.iter.next().or_else(|| {
2178+
self.done = true;
2179+
None
2180+
})
21842181
}
21852182
}
21862183

@@ -2201,13 +2198,10 @@ impl<I> DoubleEndedIterator for Fuse<I> where I: DoubleEndedIterator {
22012198
if self.done {
22022199
None
22032200
} else {
2204-
match self.iter.next_back() {
2205-
None => {
2206-
self.done = true;
2207-
None
2208-
}
2209-
x => x
2210-
}
2201+
self.iter.next_back().or_else(|| {
2202+
self.done = true;
2203+
None
2204+
})
22112205
}
22122206
}
22132207
}

0 commit comments

Comments
 (0)