@@ -2184,7 +2184,7 @@ pub mod order {
2184
2184
use super :: Iterator ;
2185
2185
2186
2186
/// Compare `a` and `b` for equality using `TotalEq`
2187
- pub fn equals < A : TotalEq , T : Iterator < A > > ( mut a : T , mut b : T ) -> bool {
2187
+ pub fn equals < A : TotalEq , T : Iterator < A > , S : Iterator < A > > ( mut a : T , mut b : S ) -> bool {
2188
2188
loop {
2189
2189
match ( a. next ( ) , b. next ( ) ) {
2190
2190
( None , None ) => return true ,
@@ -2195,7 +2195,7 @@ pub mod order {
2195
2195
}
2196
2196
2197
2197
/// Order `a` and `b` lexicographically using `TotalOrd`
2198
- pub fn cmp < A : TotalOrd , T : Iterator < A > > ( mut a : T , mut b : T ) -> cmp:: Ordering {
2198
+ pub fn cmp < A : TotalOrd , T : Iterator < A > , S : Iterator < A > > ( mut a : T , mut b : S ) -> cmp:: Ordering {
2199
2199
loop {
2200
2200
match ( a. next ( ) , b. next ( ) ) {
2201
2201
( None , None ) => return cmp:: Equal ,
@@ -2210,7 +2210,7 @@ pub mod order {
2210
2210
}
2211
2211
2212
2212
/// Compare `a` and `b` for equality (Using partial equality, `Eq`)
2213
- pub fn eq < A : Eq , T : Iterator < A > > ( mut a : T , mut b : T ) -> bool {
2213
+ pub fn eq < A : Eq , T : Iterator < A > , S : Iterator < A > > ( mut a : T , mut b : S ) -> bool {
2214
2214
loop {
2215
2215
match ( a. next ( ) , b. next ( ) ) {
2216
2216
( None , None ) => return true ,
@@ -2221,7 +2221,7 @@ pub mod order {
2221
2221
}
2222
2222
2223
2223
/// Compare `a` and `b` for nonequality (Using partial equality, `Eq`)
2224
- pub fn ne < A : Eq , T : Iterator < A > > ( mut a : T , mut b : T ) -> bool {
2224
+ pub fn ne < A : Eq , T : Iterator < A > , S : Iterator < A > > ( mut a : T , mut b : S ) -> bool {
2225
2225
loop {
2226
2226
match ( a. next ( ) , b. next ( ) ) {
2227
2227
( None , None ) => return false ,
@@ -2232,7 +2232,7 @@ pub mod order {
2232
2232
}
2233
2233
2234
2234
/// Return `a` < `b` lexicographically (Using partial order, `Ord`)
2235
- pub fn lt < A : Ord , T : Iterator < A > > ( mut a : T , mut b : T ) -> bool {
2235
+ pub fn lt < A : Ord , T : Iterator < A > , S : Iterator < A > > ( mut a : T , mut b : S ) -> bool {
2236
2236
loop {
2237
2237
match ( a. next ( ) , b. next ( ) ) {
2238
2238
( None , None ) => return false ,
@@ -2244,7 +2244,7 @@ pub mod order {
2244
2244
}
2245
2245
2246
2246
/// Return `a` <= `b` lexicographically (Using partial order, `Ord`)
2247
- pub fn le < A : Ord , T : Iterator < A > > ( mut a : T , mut b : T ) -> bool {
2247
+ pub fn le < A : Ord , T : Iterator < A > , S : Iterator < A > > ( mut a : T , mut b : S ) -> bool {
2248
2248
loop {
2249
2249
match ( a. next ( ) , b. next ( ) ) {
2250
2250
( None , None ) => return true ,
@@ -2256,7 +2256,7 @@ pub mod order {
2256
2256
}
2257
2257
2258
2258
/// Return `a` > `b` lexicographically (Using partial order, `Ord`)
2259
- pub fn gt < A : Ord , T : Iterator < A > > ( mut a : T , mut b : T ) -> bool {
2259
+ pub fn gt < A : Ord , T : Iterator < A > , S : Iterator < A > > ( mut a : T , mut b : S ) -> bool {
2260
2260
loop {
2261
2261
match ( a. next ( ) , b. next ( ) ) {
2262
2262
( None , None ) => return false ,
@@ -2268,7 +2268,7 @@ pub mod order {
2268
2268
}
2269
2269
2270
2270
/// Return `a` >= `b` lexicographically (Using partial order, `Ord`)
2271
- pub fn ge < A : Ord , T : Iterator < A > > ( mut a : T , mut b : T ) -> bool {
2271
+ pub fn ge < A : Ord , T : Iterator < A > , S : Iterator < A > > ( mut a : T , mut b : S ) -> bool {
2272
2272
loop {
2273
2273
match ( a. next ( ) , b. next ( ) ) {
2274
2274
( None , None ) => return true ,
@@ -2325,6 +2325,16 @@ pub mod order {
2325
2325
assert ! ( gt( c. iter( ) , b. iter( ) ) == ( c[ 0 ] > b[ 0 ] ) ) ;
2326
2326
assert ! ( ge( c. iter( ) , b. iter( ) ) == ( c[ 0 ] >= b[ 0 ] ) ) ;
2327
2327
}
2328
+
2329
+ #[ test]
2330
+ fn test_multi_iter ( ) {
2331
+ use slice:: ImmutableVector ;
2332
+ use iter:: DoubleEndedIterator ;
2333
+ let xs = [ 1 i, 2 , 3 , 4 ] ;
2334
+ let ys = [ 4 i, 3 , 2 , 1 ] ;
2335
+ assert ! ( eq( xs. iter( ) , ys. iter( ) . rev( ) ) ) ;
2336
+ assert ! ( lt( xs. iter( ) , xs. iter( ) . skip( 2 ) ) ) ;
2337
+ }
2328
2338
}
2329
2339
2330
2340
#[ cfg( test) ]
0 commit comments