@@ -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