@@ -16,14 +16,10 @@ use indexmap::IndexMap;
16
16
17
17
use std:: collections:: HashMap ;
18
18
19
- use rand:: rngs:: SmallRng ;
20
- use rand:: seq:: SliceRandom ;
21
- use rand:: SeedableRng ;
22
-
23
19
/// Use a consistently seeded Rng for benchmark stability
24
- fn small_rng ( ) -> SmallRng {
20
+ fn small_rng ( ) -> fastrand :: Rng {
25
21
let seed = u64:: from_le_bytes ( * b"indexmap" ) ;
26
- SmallRng :: seed_from_u64 ( seed)
22
+ fastrand :: Rng :: with_seed ( seed)
27
23
}
28
24
29
25
#[ bench]
@@ -280,7 +276,7 @@ where
280
276
{
281
277
let mut v = Vec :: from_iter ( iter) ;
282
278
let mut rng = small_rng ( ) ;
283
- v . shuffle ( & mut rng ) ;
279
+ rng . shuffle ( & mut v ) ;
284
280
v
285
281
}
286
282
@@ -523,7 +519,7 @@ fn hashmap_merge_shuffle(b: &mut Bencher) {
523
519
b. iter ( || {
524
520
let mut merged = first_map. clone ( ) ;
525
521
v. extend ( second_map. iter ( ) . map ( |( & k, & v) | ( k, v) ) ) ;
526
- v . shuffle ( & mut rng ) ;
522
+ rng . shuffle ( & mut v ) ;
527
523
merged. extend ( v. drain ( ..) ) ;
528
524
529
525
merged
@@ -550,7 +546,7 @@ fn indexmap_merge_shuffle(b: &mut Bencher) {
550
546
b. iter ( || {
551
547
let mut merged = first_map. clone ( ) ;
552
548
v. extend ( second_map. iter ( ) . map ( |( & k, & v) | ( k, v) ) ) ;
553
- v . shuffle ( & mut rng ) ;
549
+ rng . shuffle ( & mut v ) ;
554
550
merged. extend ( v. drain ( ..) ) ;
555
551
556
552
merged
@@ -562,7 +558,7 @@ fn swap_remove_indexmap_100_000(b: &mut Bencher) {
562
558
let map = IMAP_100K . clone ( ) ;
563
559
let mut keys = Vec :: from_iter ( map. keys ( ) . copied ( ) ) ;
564
560
let mut rng = small_rng ( ) ;
565
- keys . shuffle ( & mut rng ) ;
561
+ rng . shuffle ( & mut keys ) ;
566
562
567
563
b. iter ( || {
568
564
let mut map = map. clone ( ) ;
@@ -579,7 +575,7 @@ fn shift_remove_indexmap_100_000_few(b: &mut Bencher) {
579
575
let map = IMAP_100K . clone ( ) ;
580
576
let mut keys = Vec :: from_iter ( map. keys ( ) . copied ( ) ) ;
581
577
let mut rng = small_rng ( ) ;
582
- keys . shuffle ( & mut rng ) ;
578
+ rng . shuffle ( & mut keys ) ;
583
579
keys. truncate ( 50 ) ;
584
580
585
581
b. iter ( || {
@@ -600,7 +596,7 @@ fn shift_remove_indexmap_2_000_full(b: &mut Bencher) {
600
596
map. insert ( key, key) ;
601
597
}
602
598
let mut rng = small_rng ( ) ;
603
- keys . shuffle ( & mut rng ) ;
599
+ rng . shuffle ( & mut keys ) ;
604
600
605
601
b. iter ( || {
606
602
let mut map = map. clone ( ) ;
0 commit comments