@@ -284,6 +284,17 @@ macro_rules! sort_expensive {
284
284
}
285
285
}
286
286
287
+ macro_rules! sort_lexicographic {
288
+ ( $f: ident, $name: ident, $gen: expr, $len: expr) => {
289
+ #[ bench]
290
+ fn $name( b: & mut Bencher ) {
291
+ let v = $gen( $len) ;
292
+ b. iter( || v. clone( ) . $f( |x| x. to_string( ) ) ) ;
293
+ b. bytes = $len * mem:: size_of_val( & $gen( 1 ) [ 0 ] ) as u64 ;
294
+ }
295
+ }
296
+ }
297
+
287
298
sort ! ( sort, sort_small_ascending, gen_ascending, 10 ) ;
288
299
sort ! ( sort, sort_small_descending, gen_descending, 10 ) ;
289
300
sort ! ( sort, sort_small_random, gen_random, 10 ) ;
@@ -312,6 +323,10 @@ sort!(sort_unstable, sort_unstable_large_big, gen_big_random, 10000);
312
323
sort_strings ! ( sort_unstable, sort_unstable_large_strings, gen_strings, 10000 ) ;
313
324
sort_expensive ! ( sort_unstable_by, sort_unstable_large_expensive, gen_random, 10000 ) ;
314
325
326
+ sort_lexicographic ! ( sort_by_key, sort_by_key_lexicographic, gen_random, 10000 ) ;
327
+ sort_lexicographic ! ( sort_unstable_by_key, sort_unstable_by_key_lexicographic, gen_random, 10000 ) ;
328
+ sort_lexicographic ! ( sort_by_cached_key, sort_by_cached_key_lexicographic, gen_random, 10000 ) ;
329
+
315
330
macro_rules! reverse {
316
331
( $name: ident, $ty: ty, $f: expr) => {
317
332
#[ bench]
0 commit comments