5 use bencher
::{black_box, Bencher}
;
7 fn bench_btou(b
: &mut Bencher
) {
8 b
.iter(|| assert_eq
!(Ok(123_456_789u32), btoi
::btou(black_box(b
"123456789"))));
11 fn bench_btou_saturating(b
: &mut Bencher
) {
15 btoi
::btou_saturating(black_box(b
"123456789"))
20 fn bench_small_btou(b
: &mut Bencher
) {
21 b
.iter(|| assert_eq
!(Ok(42u8), btoi
::btou(black_box(b
"42"))));
24 fn bench_small_btou_saturating(b
: &mut Bencher
) {
25 b
.iter(|| assert_eq
!(Ok(255u8), btoi
::btou_saturating(black_box(b
"256"))));
28 fn bench_btoi(b
: &mut Bencher
) {
29 b
.iter(|| assert_eq
!(Ok(-123_456_789i32), btoi
::btoi(black_box(b
"-123456789"))));
32 fn bench_from_str(b
: &mut Bencher
) {
33 fn btou_from_str(s
: &[u8]) -> Option
<u32> {
34 ::std
::str::from_utf8(s
).ok().and_then(|s
| s
.parse().ok())
37 b
.iter(|| assert_eq
!(Some(123_456_789), btou_from_str(black_box(b
"123456789"))));
40 fn bench_from_str_unchecked(b
: &mut Bencher
) {
41 unsafe fn btou_from_str_unchecked(s
: &[u8]) -> Option
<u32> {
42 ::std
::str::from_utf8_unchecked(s
).parse().ok()
46 assert_eq
!(Some(123_456_789), unsafe {
47 btou_from_str_unchecked(black_box(b
"123456789"))
52 fn bench_small_from_str(b
: &mut Bencher
) {
53 fn btou_from_str(s
: &[u8]) -> Option
<u8> {
54 ::std
::str::from_utf8(s
).ok().and_then(|s
| s
.parse().ok())
57 b
.iter(|| assert_eq
!(Some(42u8), btou_from_str(black_box(b
"42"))));
60 fn bench_small_from_str_unchecked(b
: &mut Bencher
) {
61 unsafe fn btou_from_str_unchecked(s
: &[u8]) -> Option
<u8> {
62 ::std
::str::from_utf8_unchecked(s
).parse().ok()
66 assert_eq
!(Some(42u8), unsafe {
67 btou_from_str_unchecked(black_box(b
"42"))
75 bench_btou_saturating
,
78 bench_from_str_unchecked
,
80 bench_small_btou_saturating
,
82 bench_small_from_str_unchecked
85 benchmark_main
!(benches
);