@@ -2240,16 +2240,26 @@ mod tests {
2240
2240
#[ cfg( test) ]
2241
2241
mod bench {
2242
2242
use test:: Bencher ;
2243
+ use test:: black_box;
2243
2244
use super :: * ;
2245
+ use std:: option:: { None , Some } ;
2244
2246
use std:: iter:: { Iterator , DoubleEndedIterator } ;
2245
2247
use std:: collections:: Collection ;
2246
2248
2247
2249
#[ bench]
2248
2250
fn char_iterator ( b : & mut Bencher ) {
2249
2251
let s = "ศไทย中华Việt Nam; Mary had a little lamb, Little lamb" ;
2250
- let len = s. char_len ( ) ;
2251
2252
2252
- b. iter ( || assert_eq ! ( s. chars( ) . count( ) , len) ) ;
2253
+ b. iter ( || s. chars ( ) . count ( ) ) ;
2254
+ }
2255
+
2256
+ #[ bench]
2257
+ fn char_iterator_for ( b : & mut Bencher ) {
2258
+ let s = "ศไทย中华Việt Nam; Mary had a little lamb, Little lamb" ;
2259
+
2260
+ b. iter ( || {
2261
+ for ch in s. chars ( ) { black_box ( ch) }
2262
+ } ) ;
2253
2263
}
2254
2264
2255
2265
#[ bench]
@@ -2260,17 +2270,24 @@ mod bench {
2260
2270
Mary had a little lamb, Little lamb
2261
2271
Mary had a little lamb, Little lamb
2262
2272
Mary had a little lamb, Little lamb" ;
2263
- let len = s. char_len ( ) ;
2264
2273
2265
- b. iter ( || assert_eq ! ( s. chars( ) . count( ) , len ) ) ;
2274
+ b. iter ( || s. chars ( ) . count ( ) ) ;
2266
2275
}
2267
2276
2268
2277
#[ bench]
2269
2278
fn char_iterator_rev ( b : & mut Bencher ) {
2270
2279
let s = "ศไทย中华Việt Nam; Mary had a little lamb, Little lamb" ;
2271
- let len = s. char_len ( ) ;
2272
2280
2273
- b. iter ( || assert_eq ! ( s. chars( ) . rev( ) . count( ) , len) ) ;
2281
+ b. iter ( || s. chars ( ) . rev ( ) . count ( ) ) ;
2282
+ }
2283
+
2284
+ #[ bench]
2285
+ fn char_iterator_rev_for ( b : & mut Bencher ) {
2286
+ let s = "ศไทย中华Việt Nam; Mary had a little lamb, Little lamb" ;
2287
+
2288
+ b. iter ( || {
2289
+ for ch in s. chars ( ) . rev ( ) { black_box ( ch) }
2290
+ } ) ;
2274
2291
}
2275
2292
2276
2293
#[ bench]
0 commit comments