@@ -74,6 +74,7 @@ impl<A, T: DoubleEndedIterator<A>> DoubleEndedIteratorUtil<A> for T {
74
74
75
75
/// An double-ended iterator with the direction inverted
76
76
// FIXME #6967: Dummy A parameter to get around type inference bug
77
+ #[ deriving( Clone ) ]
77
78
pub struct InvertIterator < A , T > {
78
79
priv iter : T
79
80
}
@@ -753,6 +754,7 @@ impl<A, T: Clone + Iterator<A>> ClonableIterator<A> for T {
753
754
}
754
755
755
756
/// An iterator that repeats endlessly
757
+ #[ deriving( Clone ) ]
756
758
pub struct CycleIterator < A , T > {
757
759
priv orig : T ,
758
760
priv iter : T ,
@@ -780,6 +782,7 @@ impl<A, T: Clone + Iterator<A>> Iterator<A> for CycleIterator<A, T> {
780
782
781
783
/// An iterator which strings two iterators together
782
784
// FIXME #6967: Dummy A parameter to get around type inference bug
785
+ #[ deriving( Clone ) ]
783
786
pub struct ChainIterator < A , T , U > {
784
787
priv a: T ,
785
788
priv b: U ,
@@ -835,6 +838,7 @@ for ChainIterator<A, T, U> {
835
838
836
839
/// An iterator which iterates two other iterators simultaneously
837
840
// FIXME #6967: Dummy A & B parameters to get around type inference bug
841
+ #[ deriving( Clone ) ]
838
842
pub struct ZipIterator < A , T , B , U > {
839
843
priv a: T ,
840
844
priv b: U
@@ -988,6 +992,7 @@ for FilterMapIterator<'self, A, B, T> {
988
992
989
993
/// An iterator which yields the current count and the element during iteration
990
994
// FIXME #6967: Dummy A parameter to get around type inference bug
995
+ #[ deriving( Clone ) ]
991
996
pub struct EnumerateIterator < A , T > {
992
997
priv iter : T ,
993
998
priv count : uint
@@ -1086,6 +1091,7 @@ impl<'self, A, T: Iterator<A>> Iterator<A> for TakeWhileIterator<'self, A, T> {
1086
1091
1087
1092
/// An iterator which skips over `n` elements of `iter`.
1088
1093
// FIXME #6967: Dummy A parameter to get around type inference bug
1094
+ #[ deriving( Clone ) ]
1089
1095
pub struct SkipIterator < A , T > {
1090
1096
priv iter : T ,
1091
1097
priv n: uint
@@ -1134,6 +1140,7 @@ impl<A, T: Iterator<A>> Iterator<A> for SkipIterator<A, T> {
1134
1140
1135
1141
/// An iterator which only iterates over the first `n` iterations of `iter`.
1136
1142
// FIXME #6967 : Dummy A parameter to get around type inference bug
1143
+ #[ deriving( Clone ) ]
1137
1144
pub struct TakeIterator < A , T > {
1138
1145
priv iter: T ,
1139
1146
priv n: uint
@@ -1285,6 +1292,7 @@ impl<'self, A, St> Iterator<A> for UnfoldrIterator<'self, A, St> {
1285
1292
1286
1293
/// An infinite iterator starting at `start` and advancing by `step` with each
1287
1294
/// iteration
1295
+ #[ deriving( Clone ) ]
1288
1296
pub struct Counter < A > {
1289
1297
/// The current state the counter is at (next value to be yielded)
1290
1298
state: A ,
0 commit comments