@@ -22,11 +22,11 @@ pub trait IteratorUtil<A> {
22
22
// FIXME: #5898: should be called map
23
23
fn transform < ' r , B > ( self , f : & ' r fn ( A ) -> B ) -> MapIterator < ' r , A , B , Self > ;
24
24
fn filter < ' r > ( self , predicate : & ' r fn ( & A ) -> bool ) -> FilterIterator < ' r , A , Self > ;
25
+ fn enumerate ( self ) -> EnumerateIterator < Self > ;
25
26
fn skip_while < ' r > ( self , predicate : & ' r fn ( & A ) -> bool ) -> SkipWhileIterator < ' r , A , Self > ;
26
27
fn take_while < ' r > ( self , predicate : & ' r fn ( & A ) -> bool ) -> TakeWhileIterator < ' r , A , Self > ;
27
28
fn skip ( self , n : uint ) -> SkipIterator < Self > ;
28
29
fn take ( self , n : uint ) -> TakeIterator < Self > ;
29
- fn enumerate ( self ) -> EnumerateIterator < Self > ;
30
30
fn advance ( & mut self , f : & fn ( A ) -> bool ) ;
31
31
}
32
32
@@ -101,6 +101,21 @@ impl<A, B, T: Iterator<A>, U: Iterator<B>> Iterator<(A, B)> for ZipIterator<T, U
101
101
}
102
102
}
103
103
104
+ pub struct MapIterator < ' self , A , B , T > {
105
+ priv iter : T ,
106
+ priv f: & ' self fn ( A ) -> B
107
+ }
108
+
109
+ impl < ' self , A , B , T : Iterator < A > > Iterator < B > for MapIterator < ' self , A , B , T > {
110
+ #[ inline]
111
+ fn next ( & mut self ) -> Option < B > {
112
+ match self . iter . next ( ) {
113
+ Some ( a) => Some ( ( self . f ) ( a) ) ,
114
+ _ => None
115
+ }
116
+ }
117
+ }
118
+
104
119
pub struct FilterIterator < ' self , A , T > {
105
120
priv iter : T ,
106
121
priv predicate : & ' self fn ( & A ) -> bool
@@ -120,21 +135,6 @@ impl<'self, A, T: Iterator<A>> Iterator<A> for FilterIterator<'self, A, T> {
120
135
}
121
136
}
122
137
123
- pub struct MapIterator < ' self , A , B , T > {
124
- priv iter : T ,
125
- priv f: & ' self fn ( A ) -> B
126
- }
127
-
128
- impl < ' self , A , B , T : Iterator < A > > Iterator < B > for MapIterator < ' self , A , B , T > {
129
- #[ inline]
130
- fn next ( & mut self ) -> Option < B > {
131
- match self . iter . next ( ) {
132
- Some ( a) => Some ( ( self . f ) ( a) ) ,
133
- _ => None
134
- }
135
- }
136
- }
137
-
138
138
pub struct EnumerateIterator < T > {
139
139
priv iter : T ,
140
140
priv count : uint
0 commit comments