@@ -162,3 +162,183 @@ fn write_u8_min(bh: &mut Bencher) {
162162        black_box ( format ! ( "{}" ,  black_box( u8 :: MIN ) ) ) ; 
163163    } ) ; 
164164} 
165+ 
166+ #[ bench]  
167+ fn  write_i8_bin ( bh :  & mut  Bencher )  { 
168+     let  mut  buf = String :: with_capacity ( 256 ) ; 
169+     bh. iter ( || { 
170+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 0_i8 ) ) . unwrap ( ) ; 
171+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 100_i8 ) ) . unwrap ( ) ; 
172+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( -100_i8 ) ) . unwrap ( ) ; 
173+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 1_i8  << 4 ) ) . unwrap ( ) ; 
174+         black_box ( & mut  buf) . clear ( ) ; 
175+     } ) ; 
176+ } 
177+ 
178+ #[ bench]  
179+ fn  write_i16_bin ( bh :  & mut  Bencher )  { 
180+     let  mut  buf = String :: with_capacity ( 256 ) ; 
181+     bh. iter ( || { 
182+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 0_i16 ) ) . unwrap ( ) ; 
183+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 100_i16 ) ) . unwrap ( ) ; 
184+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( -100_i16 ) ) . unwrap ( ) ; 
185+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 1_i16  << 8 ) ) . unwrap ( ) ; 
186+         black_box ( & mut  buf) . clear ( ) ; 
187+     } ) ; 
188+ } 
189+ 
190+ #[ bench]  
191+ fn  write_i32_bin ( bh :  & mut  Bencher )  { 
192+     let  mut  buf = String :: with_capacity ( 256 ) ; 
193+     bh. iter ( || { 
194+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 0_i32 ) ) . unwrap ( ) ; 
195+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 100_i32 ) ) . unwrap ( ) ; 
196+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( -100_i32 ) ) . unwrap ( ) ; 
197+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 1_i32  << 16 ) ) . unwrap ( ) ; 
198+         black_box ( & mut  buf) . clear ( ) ; 
199+     } ) ; 
200+ } 
201+ 
202+ #[ bench]  
203+ fn  write_i64_bin ( bh :  & mut  Bencher )  { 
204+     let  mut  buf = String :: with_capacity ( 256 ) ; 
205+     bh. iter ( || { 
206+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 0_i64 ) ) . unwrap ( ) ; 
207+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 100_i64 ) ) . unwrap ( ) ; 
208+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( -100_i64 ) ) . unwrap ( ) ; 
209+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 1_i64  << 32 ) ) . unwrap ( ) ; 
210+         black_box ( & mut  buf) . clear ( ) ; 
211+     } ) ; 
212+ } 
213+ 
214+ #[ bench]  
215+ fn  write_i128_bin ( bh :  & mut  Bencher )  { 
216+     let  mut  buf = String :: with_capacity ( 256 ) ; 
217+     bh. iter ( || { 
218+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 0_i128 ) ) . unwrap ( ) ; 
219+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 100_i128 ) ) . unwrap ( ) ; 
220+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( -100_i128 ) ) . unwrap ( ) ; 
221+         write ! ( black_box( & mut  buf) ,  "{:b}" ,  black_box( 1_i128  << 64 ) ) . unwrap ( ) ; 
222+         black_box ( & mut  buf) . clear ( ) ; 
223+     } ) ; 
224+ } 
225+ 
226+ #[ bench]  
227+ fn  write_i8_oct ( bh :  & mut  Bencher )  { 
228+     let  mut  buf = String :: with_capacity ( 256 ) ; 
229+     bh. iter ( || { 
230+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 0_i8 ) ) . unwrap ( ) ; 
231+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 100_i8 ) ) . unwrap ( ) ; 
232+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( -100_i8 ) ) . unwrap ( ) ; 
233+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 1_i8  << 4 ) ) . unwrap ( ) ; 
234+         black_box ( & mut  buf) . clear ( ) ; 
235+     } ) ; 
236+ } 
237+ 
238+ #[ bench]  
239+ fn  write_i16_oct ( bh :  & mut  Bencher )  { 
240+     let  mut  buf = String :: with_capacity ( 256 ) ; 
241+     bh. iter ( || { 
242+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 0_i16 ) ) . unwrap ( ) ; 
243+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 100_i16 ) ) . unwrap ( ) ; 
244+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( -100_i16 ) ) . unwrap ( ) ; 
245+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 1_i16  << 8 ) ) . unwrap ( ) ; 
246+         black_box ( & mut  buf) . clear ( ) ; 
247+     } ) ; 
248+ } 
249+ 
250+ #[ bench]  
251+ fn  write_i32_oct ( bh :  & mut  Bencher )  { 
252+     let  mut  buf = String :: with_capacity ( 256 ) ; 
253+     bh. iter ( || { 
254+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 0_i32 ) ) . unwrap ( ) ; 
255+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 100_i32 ) ) . unwrap ( ) ; 
256+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( -100_i32 ) ) . unwrap ( ) ; 
257+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 1_i32  << 16 ) ) . unwrap ( ) ; 
258+         black_box ( & mut  buf) . clear ( ) ; 
259+     } ) ; 
260+ } 
261+ 
262+ #[ bench]  
263+ fn  write_i64_oct ( bh :  & mut  Bencher )  { 
264+     let  mut  buf = String :: with_capacity ( 256 ) ; 
265+     bh. iter ( || { 
266+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 0_i64 ) ) . unwrap ( ) ; 
267+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 100_i64 ) ) . unwrap ( ) ; 
268+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( -100_i64 ) ) . unwrap ( ) ; 
269+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 1_i64  << 32 ) ) . unwrap ( ) ; 
270+         black_box ( & mut  buf) . clear ( ) ; 
271+     } ) ; 
272+ } 
273+ 
274+ #[ bench]  
275+ fn  write_i128_oct ( bh :  & mut  Bencher )  { 
276+     let  mut  buf = String :: with_capacity ( 256 ) ; 
277+     bh. iter ( || { 
278+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 0_i128 ) ) . unwrap ( ) ; 
279+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 100_i128 ) ) . unwrap ( ) ; 
280+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( -100_i128 ) ) . unwrap ( ) ; 
281+         write ! ( black_box( & mut  buf) ,  "{:o}" ,  black_box( 1_i128  << 64 ) ) . unwrap ( ) ; 
282+         black_box ( & mut  buf) . clear ( ) ; 
283+     } ) ; 
284+ } 
285+ 
286+ #[ bench]  
287+ fn  write_i8_hex ( bh :  & mut  Bencher )  { 
288+     let  mut  buf = String :: with_capacity ( 256 ) ; 
289+     bh. iter ( || { 
290+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 0_i8 ) ) . unwrap ( ) ; 
291+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 100_i8 ) ) . unwrap ( ) ; 
292+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( -100_i8 ) ) . unwrap ( ) ; 
293+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 1_i8  << 4 ) ) . unwrap ( ) ; 
294+         black_box ( & mut  buf) . clear ( ) ; 
295+     } ) ; 
296+ } 
297+ 
298+ #[ bench]  
299+ fn  write_i16_hex ( bh :  & mut  Bencher )  { 
300+     let  mut  buf = String :: with_capacity ( 256 ) ; 
301+     bh. iter ( || { 
302+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 0_i16 ) ) . unwrap ( ) ; 
303+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 100_i16 ) ) . unwrap ( ) ; 
304+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( -100_i16 ) ) . unwrap ( ) ; 
305+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 1_i16  << 8 ) ) . unwrap ( ) ; 
306+         black_box ( & mut  buf) . clear ( ) ; 
307+     } ) ; 
308+ } 
309+ 
310+ #[ bench]  
311+ fn  write_i32_hex ( bh :  & mut  Bencher )  { 
312+     let  mut  buf = String :: with_capacity ( 256 ) ; 
313+     bh. iter ( || { 
314+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 0_i32 ) ) . unwrap ( ) ; 
315+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 100_i32 ) ) . unwrap ( ) ; 
316+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( -100_i32 ) ) . unwrap ( ) ; 
317+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 1_i32  << 16 ) ) . unwrap ( ) ; 
318+         black_box ( & mut  buf) . clear ( ) ; 
319+     } ) ; 
320+ } 
321+ 
322+ #[ bench]  
323+ fn  write_i64_hex ( bh :  & mut  Bencher )  { 
324+     let  mut  buf = String :: with_capacity ( 256 ) ; 
325+     bh. iter ( || { 
326+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 0_i64 ) ) . unwrap ( ) ; 
327+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 100_i64 ) ) . unwrap ( ) ; 
328+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( -100_i64 ) ) . unwrap ( ) ; 
329+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 1_i64  << 32 ) ) . unwrap ( ) ; 
330+         black_box ( & mut  buf) . clear ( ) ; 
331+     } ) ; 
332+ } 
333+ 
334+ #[ bench]  
335+ fn  write_i128_hex ( bh :  & mut  Bencher )  { 
336+     let  mut  buf = String :: with_capacity ( 256 ) ; 
337+     bh. iter ( || { 
338+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 0_i128 ) ) . unwrap ( ) ; 
339+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 100_i128 ) ) . unwrap ( ) ; 
340+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( -100_i128 ) ) . unwrap ( ) ; 
341+         write ! ( black_box( & mut  buf) ,  "{:x}" ,  black_box( 1_i128  << 64 ) ) . unwrap ( ) ; 
342+         black_box ( & mut  buf) . clear ( ) ; 
343+     } ) ; 
344+ } 
0 commit comments