Skip to content

Commit cd65156

Browse files
author
Lai Jiangshan
committed
iter: use Option::map() in struct Iterater::map()
Signed-off-by: Lai Jiangshan <[email protected]>
1 parent 1576142 commit cd65156

File tree

1 file changed

+3
-16
lines changed

1 file changed

+3
-16
lines changed

src/libcore/iter.rs

+3-16
Original file line numberDiff line numberDiff line change
@@ -1565,24 +1565,13 @@ pub struct Map<I, F> {
15651565
f: F,
15661566
}
15671567

1568-
impl<I: Iterator, F, B> Map<I, F> where F: FnMut(I::Item) -> B {
1569-
#[inline]
1570-
fn do_map(&mut self, elt: Option<I::Item>) -> Option<B> {
1571-
match elt {
1572-
Some(a) => Some((self.f)(a)),
1573-
_ => None
1574-
}
1575-
}
1576-
}
1577-
15781568
#[stable(feature = "rust1", since = "1.0.0")]
15791569
impl<B, I: Iterator, F> Iterator for Map<I, F> where F: FnMut(I::Item) -> B {
15801570
type Item = B;
15811571

15821572
#[inline]
15831573
fn next(&mut self) -> Option<B> {
1584-
let next = self.iter.next();
1585-
self.do_map(next)
1574+
self.iter.next().map(|a| (self.f)(a))
15861575
}
15871576

15881577
#[inline]
@@ -1597,8 +1586,7 @@ impl<B, I: DoubleEndedIterator, F> DoubleEndedIterator for Map<I, F> where
15971586
{
15981587
#[inline]
15991588
fn next_back(&mut self) -> Option<B> {
1600-
let next = self.iter.next_back();
1601-
self.do_map(next)
1589+
self.iter.next_back().map(|a| (self.f)(a))
16021590
}
16031591
}
16041592

@@ -1613,8 +1601,7 @@ impl<B, I: RandomAccessIterator, F> RandomAccessIterator for Map<I, F> where
16131601

16141602
#[inline]
16151603
fn idx(&mut self, index: usize) -> Option<B> {
1616-
let elt = self.iter.idx(index);
1617-
self.do_map(elt)
1604+
self.iter.idx(index).map(|a| (self.f)(a))
16181605
}
16191606
}
16201607

0 commit comments

Comments
 (0)