use atoi::{FromRadix10, FromRadix10Checked, FromRadix16, FromRadix16Checked, FromRadix10Signed}; use criterion::{black_box, criterion_group, criterion_main, Criterion}; use std::str; pub fn i32_four_digit_number(c: &mut Criterion) { c.bench_function("i32 four digit number", |b| { b.iter(|| i32::from_radix_10(black_box(b"1996"))) }); } pub fn i32_four_digit_number_checked(c: &mut Criterion) { c.bench_function("i32 checked four digit number", |b| { b.iter(|| i32::from_radix_10_checked(black_box(b"1996"))) }); } pub fn u32_four_digit_number(c: &mut Criterion) { c.bench_function("u32 four digit number", |b| { b.iter(|| u32::from_radix_10(black_box(b"1996"))) }); } pub fn u32_four_digit_number_checked(c: &mut Criterion) { c.bench_function("u32 checked four digit number", |b| { b.iter(|| u32::from_radix_10_checked(black_box(b"1996"))) }); } pub fn i32_four_digit_hex_number(c: &mut Criterion) { c.bench_function("i32 four digit hex number", |b| { b.iter(|| i32::from_radix_16(black_box(b"1996"))) }); } pub fn i32_four_digit_hex_number_checked(c: &mut Criterion) { c.bench_function("i32 checked four digit hex number", |b| { b.iter(|| i32::from_radix_16_checked(black_box(b"1996"))) }); } pub fn u32_four_digit_hex_number(c: &mut Criterion) { c.bench_function("u32 four digit hex number", |b| { b.iter(|| u32::from_radix_16(black_box(b"1996"))) }); } pub fn u32_four_digit_hex_number_checked(c: &mut Criterion) { c.bench_function("u32 checked four digit hex number", |b| { b.iter(|| u32::from_radix_16_checked(black_box(b"1996"))) }); } pub fn i32_negative_four_digit_number(c: &mut Criterion) { c.bench_function("negative i32 four digit number", |b| { b.iter(|| i32::from_radix_10_signed(black_box(b"-1996"))) }); } pub fn i32_signed_four_digit_number(c: &mut Criterion) { c.bench_function("signed i32 four digit number", |b| { b.iter(|| i32::from_radix_10_signed(black_box(b"1996"))) }); } pub fn i32_positive_four_digit_number(c: &mut Criterion) { c.bench_function("positive i32 four digit number", |b| { b.iter(|| i32::from_radix_10_signed(black_box(b"+1996"))) }); } pub fn through_utf8(c: &mut Criterion) { c.bench_function("via UTF-8", |b| { b.iter(|| { let s = str::from_utf8(black_box(b"1996")).unwrap(); s.parse::().unwrap(); }) }); } criterion_group!( benches, i32_four_digit_number, i32_four_digit_number_checked, u32_four_digit_number, u32_four_digit_number_checked, i32_four_digit_hex_number, i32_four_digit_hex_number_checked, u32_four_digit_hex_number, u32_four_digit_hex_number_checked, i32_signed_four_digit_number, i32_negative_four_digit_number, i32_positive_four_digit_number, through_utf8, ); criterion_main!(benches);