@@ -13,9 +13,14 @@ use std::rand;
13
13
use std:: rand:: Rng ;
14
14
use test:: Bencher ;
15
15
16
- pub fn insert_rand_n < M > ( n : uint , map : & mut M , b : & mut Bencher ,
17
- insert : |& mut M , uint|,
18
- remove: |& mut M , uint|) {
16
+ pub fn insert_rand_n < M , I , R > ( n : uint ,
17
+ map : & mut M ,
18
+ b : & mut Bencher ,
19
+ mut insert : I ,
20
+ mut remove : R ) where
21
+ I : FnMut ( & mut M , uint ) ,
22
+ R : FnMut ( & mut M , uint ) ,
23
+ {
19
24
// setup
20
25
let mut rng = rand:: weak_rng ( ) ;
21
26
@@ -31,9 +36,14 @@ pub fn insert_rand_n<M>(n: uint, map: &mut M, b: &mut Bencher,
31
36
} )
32
37
}
33
38
34
- pub fn insert_seq_n < M > ( n : uint , map : & mut M , b : & mut Bencher ,
35
- insert : |& mut M , uint|,
36
- remove: |& mut M , uint|) {
39
+ pub fn insert_seq_n < M , I , R > ( n : uint ,
40
+ map : & mut M ,
41
+ b : & mut Bencher ,
42
+ mut insert : I ,
43
+ mut remove : R ) where
44
+ I : FnMut ( & mut M , uint ) ,
45
+ R : FnMut ( & mut M , uint ) ,
46
+ {
37
47
// setup
38
48
for i in range ( 0 u, n) {
39
49
insert ( map, i * 2 ) ;
@@ -48,9 +58,14 @@ pub fn insert_seq_n<M>(n: uint, map: &mut M, b: &mut Bencher,
48
58
} )
49
59
}
50
60
51
- pub fn find_rand_n < M , T > ( n : uint , map : & mut M , b : & mut Bencher ,
52
- insert : |& mut M , uint|,
53
- find: |& M , uint| -> T ) {
61
+ pub fn find_rand_n < M , T , I , F > ( n : uint ,
62
+ map : & mut M ,
63
+ b : & mut Bencher ,
64
+ mut insert : I ,
65
+ mut find : F ) where
66
+ I : FnMut ( & mut M , uint ) ,
67
+ F : FnMut ( & M , uint ) -> T ,
68
+ {
54
69
// setup
55
70
let mut rng = rand:: weak_rng ( ) ;
56
71
let mut keys = Vec :: from_fn ( n, |_| rng. gen :: < uint > ( ) % n) ;
@@ -70,9 +85,14 @@ pub fn find_rand_n<M, T>(n: uint, map: &mut M, b: &mut Bencher,
70
85
} )
71
86
}
72
87
73
- pub fn find_seq_n < M , T > ( n : uint , map : & mut M , b : & mut Bencher ,
74
- insert : |& mut M , uint|,
75
- find: |& M , uint| -> T ) {
88
+ pub fn find_seq_n < M , T , I , F > ( n : uint ,
89
+ map : & mut M ,
90
+ b : & mut Bencher ,
91
+ mut insert : I ,
92
+ mut find : F ) where
93
+ I : FnMut ( & mut M , uint ) ,
94
+ F : FnMut ( & M , uint ) -> T ,
95
+ {
76
96
// setup
77
97
for i in range ( 0 u, n) {
78
98
insert ( map, i) ;
0 commit comments