summaryrefslogtreecommitdiffstats
path: root/vendor/itoa-0.4.7/benches/bench.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/itoa-0.4.7/benches/bench.rs')
-rw-r--r--vendor/itoa-0.4.7/benches/bench.rs83
1 files changed, 83 insertions, 0 deletions
diff --git a/vendor/itoa-0.4.7/benches/bench.rs b/vendor/itoa-0.4.7/benches/bench.rs
new file mode 100644
index 00000000..a9ed517c
--- /dev/null
+++ b/vendor/itoa-0.4.7/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())
+}