@@ -26,7 +26,7 @@ pub fn bench_from_vec_unchecked(c: &mut Criterion) {
2626 c,
2727 format ! ( "from_vec_unchecked/{size}" ) ,
2828 arbitrary_raw_nibbles ( size) ,
29- |data| Nibbles :: from_vec_unchecked ( black_box ( data) ) ,
29+ |data| Nibbles :: from_vec_unchecked ( black_box ( data. clone ( ) ) ) ,
3030 ) ;
3131 }
3232}
@@ -44,9 +44,8 @@ pub fn bench_pack(c: &mut Criterion) {
4444 format ! ( "pack_to/{size}" ) ,
4545 arbitrary_bytes ( size)
4646 . prop_map ( |nibbles| ( vec ! [ 0 ; nibbles. len( ) ] , Nibbles :: unpack ( nibbles) ) ) ,
47- |( mut buffer, nibbles) | {
48- black_box ( nibbles) . pack_to ( black_box ( & mut buffer) ) ;
49- buffer
47+ |( buffer, nibbles) | {
48+ black_box ( nibbles) . pack_to ( black_box ( & mut buffer. clone ( ) ) ) ;
5049 } ,
5150 ) ;
5251 }
@@ -69,7 +68,7 @@ pub fn bench_push(c: &mut Criterion) {
6968 |raw_nibbles| {
7069 let mut nibbles = Nibbles :: new ( ) ;
7170 for nibble in raw_nibbles {
72- nibbles. push ( black_box ( nibble) ) ;
71+ nibbles. push ( black_box ( * nibble) ) ;
7372 }
7473 nibbles
7574 } ,
@@ -91,7 +90,7 @@ pub fn bench_slice(c: &mut Criterion) {
9190 let end = start..nibbles. len ( ) ;
9291 ( Just ( nibbles) , Just ( start) , end)
9392 } ) ,
94- |( nibbles, start, end) | nibbles. slice ( black_box ( start..end) ) ,
93+ |( nibbles, start, end) | nibbles. slice ( black_box ( * start..* end) ) ,
9594 ) ;
9695 }
9796}
@@ -102,7 +101,7 @@ pub fn bench_join(c: &mut Criterion) {
102101 c,
103102 format ! ( "join/{size}" ) ,
104103 ( arbitrary_nibbles ( size) , arbitrary_nibbles ( size) ) ,
105- |( a, b) | a. join ( black_box ( & b) ) ,
104+ |( a, b) | a. join ( black_box ( b) ) ,
106105 ) ;
107106 }
108107}
@@ -113,8 +112,8 @@ pub fn bench_extend(c: &mut Criterion) {
113112 c,
114113 format ! ( "extend/{size}" ) ,
115114 ( arbitrary_nibbles ( size) , arbitrary_nibbles ( size) ) ,
116- |( mut base, extension) | {
117- base. extend_from_slice ( black_box ( & extension) ) ;
115+ |( base, extension) | {
116+ base. clone ( ) . extend_from_slice ( black_box ( extension) ) ;
118117 } ,
119118 ) ;
120119 }
@@ -125,34 +124,34 @@ pub fn bench_set_at(c: &mut Criterion) {
125124 bench_arbitrary_with (
126125 c,
127126 format ! ( "set_at/{size}" ) ,
128- arbitrary_nibbles ( size) . prop_flat_map ( |nibbles| {
127+ arbitrary_non_empty_nibbles ( size) . prop_flat_map ( |nibbles| {
129128 let i = 0 ..nibbles. len ( ) ;
130129 ( Just ( nibbles) , i)
131130 } ) ,
132- |( mut nibbles, i) | {
133- nibbles. set_at ( black_box ( i) , black_box ( ( i % 16 ) as u8 ) ) ;
131+ |( nibbles, i) | {
132+ nibbles. clone ( ) . set_at ( black_box ( * i) , black_box ( ( i % 16 ) as u8 ) ) ;
134133 } ,
135134 ) ;
136135 }
137136}
138137
139138pub fn bench_get_byte ( c : & mut Criterion ) {
140139 for size in SIZE_NIBBLES {
141- let strategy = arbitrary_nibbles ( size) . prop_flat_map ( |nibbles| {
140+ let strategy = arbitrary_non_empty_nibbles ( size) . prop_flat_map ( |nibbles| {
142141 let i = 0 ..nibbles. len ( ) ;
143142 ( Just ( nibbles) , i)
144143 } ) ;
145144
146145 bench_arbitrary_with ( c, format ! ( "get_byte/{size}" ) , strategy. clone ( ) , |( nibbles, i) | {
147- nibbles. get_byte ( black_box ( i) ) ;
146+ nibbles. get_byte ( black_box ( * i) ) ;
148147 } ) ;
149148
150149 bench_arbitrary_with (
151150 c,
152151 format ! ( "get_byte_unchecked/{size}" ) ,
153152 strategy,
154153 |( nibbles, i) | unsafe {
155- nibbles. get_byte_unchecked ( black_box ( i) ) ;
154+ nibbles. get_byte_unchecked ( black_box ( * i) ) ;
156155 } ,
157156 ) ;
158157 }
@@ -172,7 +171,7 @@ pub fn bench_common_prefix_length(c: &mut Criterion) {
172171 let prefix = nibbles. slice ( ..prefix_size) ;
173172 ( nibbles, prefix)
174173 } ) ,
175- |( nibbles, prefix) | nibbles. common_prefix_length ( black_box ( & prefix) ) ,
174+ |( nibbles, prefix) | nibbles. common_prefix_length ( black_box ( prefix) ) ,
176175 ) ;
177176 }
178177}
@@ -183,7 +182,7 @@ pub fn bench_cmp(c: &mut Criterion) {
183182 c,
184183 format ! ( "cmp/{size}" ) ,
185184 ( arbitrary_nibbles ( size) , arbitrary_nibbles ( size) ) ,
186- |( a, b) | a. cmp ( black_box ( & b) ) ,
185+ |( a, b) | a. cmp ( black_box ( b) ) ,
187186 ) ;
188187 }
189188}
@@ -206,8 +205,8 @@ pub fn bench_increment(c: &mut Criterion) {
206205
207206pub fn bench_pop ( c : & mut Criterion ) {
208207 for size in SIZE_NIBBLES {
209- bench_arbitrary_with ( c, format ! ( "pop/{size}" ) , arbitrary_nibbles ( size) , |mut nibbles| {
210- black_box ( & mut nibbles) . pop ( )
208+ bench_arbitrary_with ( c, format ! ( "pop/{size}" ) , arbitrary_nibbles ( size) , |nibbles| {
209+ black_box ( nibbles. clone ( ) ) . pop ( )
211210 } ) ;
212211 }
213212}
@@ -242,7 +241,7 @@ pub fn bench_starts_with(c: &mut Criterion) {
242241 let prefix = nibbles. slice ( ..prefix_size) ;
243242 ( nibbles, prefix)
244243 } ) ,
245- |( nibbles, prefix) | nibbles. starts_with ( black_box ( & prefix) ) ,
244+ |( nibbles, prefix) | nibbles. starts_with ( black_box ( prefix) ) ,
246245 ) ;
247246 }
248247}
@@ -261,7 +260,7 @@ pub fn bench_ends_with(c: &mut Criterion) {
261260 let suffix = nibbles. slice ( nibbles. len ( ) - suffix_size..) ;
262261 ( nibbles, suffix)
263262 } ) ,
264- |( nibbles, suffix) | nibbles. ends_with ( black_box ( & suffix) ) ,
263+ |( nibbles, suffix) | nibbles. ends_with ( black_box ( suffix) ) ,
265264 ) ;
266265 }
267266}
@@ -275,18 +274,17 @@ pub fn bench_truncate(c: &mut Criterion) {
275274 let new_len = 0 ..nibbles. len ( ) ;
276275 ( Just ( nibbles) , new_len)
277276 } ) ,
278- |( mut nibbles, new_len) | {
279- nibbles. truncate ( black_box ( new_len) ) ;
280- nibbles
277+ |( nibbles, new_len) | {
278+ nibbles. clone ( ) . truncate ( black_box ( * new_len) ) ;
281279 } ,
282280 ) ;
283281 }
284282}
285283
286284pub fn bench_clear ( c : & mut Criterion ) {
287285 for size in SIZE_NIBBLES {
288- bench_arbitrary_with ( c, format ! ( "clear/{size}" ) , arbitrary_nibbles ( size) , |mut nibbles| {
289- black_box ( & mut nibbles) . clear ( )
286+ bench_arbitrary_with ( c, format ! ( "clear/{size}" ) , arbitrary_nibbles ( size) , |nibbles| {
287+ black_box ( nibbles. clone ( ) ) . clear ( )
290288 } ) ;
291289 }
292290}
0 commit comments