-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathcmp.rs
77 lines (68 loc) · 1.69 KB
/
cmp.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#![feature(test)]
extern crate mime;
extern crate test;
use mime::*;
use test::Bencher;
#[bench]
fn bench_eq_parsed_atom(b: &mut Bencher) {
let mime = "text/plain; charset=utf-8".parse::<MediaType>().unwrap();
b.bytes = mime.as_ref().len() as u64;
b.iter(|| {
assert_eq!(mime, TEXT_PLAIN_UTF_8);
})
}
#[bench]
fn bench_eq_parsed_dynamic(b: &mut Bencher) {
let mime1 = "text/foo; charset=utf-8".parse::<MediaType>().unwrap();
let mime2 = mime1.clone();
b.bytes = mime1.as_ref().len() as u64;
b.iter(|| {
assert_eq!(mime1, mime2);
})
}
#[bench]
fn bench_eq_multiple_parameters(b: &mut Bencher) {
let mime1 = "text/foo; aaa=bbb; ccc=ddd; eee=fff; ggg=hhh"
.parse::<MediaType>()
.unwrap();
let mime2 = mime1.clone();
b.bytes = mime1.as_ref().len() as u64;
b.iter(|| {
assert_eq!(mime1, mime2);
})
}
#[bench]
fn bench_eq_consts(b: &mut Bencher) {
let mime = TEXT_PLAIN_UTF_8;
b.bytes = mime.as_ref().len() as u64;
b.iter(|| {
assert_eq!(mime, TEXT_PLAIN_UTF_8);
});
}
#[cfg(feature = "macro")]
#[bench]
fn bench_eq_proc_macro(b: &mut Bencher) {
let mime = media_type!("text/plain; charset=utf-8");
b.bytes = mime.as_ref().len() as u64;
b.iter(|| {
assert_eq!(mime, TEXT_PLAIN_UTF_8);
});
}
#[bench]
fn bench_ne_consts(b: &mut Bencher) {
let one = TEXT_XML;
let two = TEXT_CSS;
b.bytes = one.as_ref().len() as u64;
b.iter(|| {
assert_ne!(one, two);
});
}
#[bench]
fn bench_eq_type(b: &mut Bencher) {
let mime = TEXT_PLAIN_UTF_8;
let name = TEXT;
b.bytes = name.len() as u64;
b.iter(|| {
assert_eq!(mime.type_(), name);
});
}