diff options
Diffstat (limited to 'vendor/itoa-0.4.8/benches/bench.rs')
-rw-r--r-- | vendor/itoa-0.4.8/benches/bench.rs | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/vendor/itoa-0.4.8/benches/bench.rs b/vendor/itoa-0.4.8/benches/bench.rs new file mode 100644 index 000000000..a9ed517cf --- /dev/null +++ b/vendor/itoa-0.4.8/benches/bench.rs @@ -0,0 +1,83 @@ +#![cfg_attr(feature = "cargo-clippy", allow(cast_lossless))] +#![feature(test)] +#![allow(non_snake_case)] + +extern crate itoa; +extern crate test; + +macro_rules! benches { + ( + $( + $(#[$attr:meta])* + $name:ident($value:expr) + ),* + ) => { + mod bench_itoa_write { + use test::{Bencher, black_box}; + $( + $(#[$attr])* + #[bench] + fn $name(b: &mut Bencher) { + use itoa; + + let mut buf = Vec::with_capacity(40); + + b.iter(|| { + buf.clear(); + itoa::write(&mut buf, black_box($value)).unwrap() + }); + } + )* + } + + mod bench_itoa_fmt { + use test::{Bencher, black_box}; + $( + $(#[$attr])* + #[bench] + fn $name(b: &mut Bencher) { + use itoa; + + let mut buf = String::with_capacity(40); + + b.iter(|| { + buf.clear(); + itoa::fmt(&mut buf, black_box($value)).unwrap() + }); + } + )* + } + + mod bench_std_fmt { + use test::{Bencher, black_box}; + $( + $(#[$attr])* + #[bench] + fn $name(b: &mut Bencher) { + use std::io::Write; + + let mut buf = Vec::with_capacity(40); + + b.iter(|| { + buf.clear(); + write!(&mut buf, "{}", black_box($value)).unwrap() + }); + } + )* + } + } +} + +benches! { + bench_u64_0(0u64), + bench_u64_half(<u32>::max_value() as u64), + bench_u64_max(<u64>::max_value()), + + bench_i16_0(0i16), + bench_i16_min(<i16>::min_value()), + + #[cfg(feature = "i128")] + bench_u128_0(0u128), + #[cfg(feature = "i128")] + bench_u128_max(<u128>::max_value()) +} |