1 #[macro_use]
2 extern crate bencher;
3 extern crate idna;
4 
5 use bencher::{black_box, Bencher};
6 use idna::Config;
7 
to_unicode_puny_label(bench: &mut Bencher)8 fn to_unicode_puny_label(bench: &mut Bencher) {
9     let encoded = "abc.xn--mgbcm";
10     let config = Config::default();
11     bench.iter(|| config.to_unicode(black_box(encoded)));
12 }
13 
to_unicode_ascii(bench: &mut Bencher)14 fn to_unicode_ascii(bench: &mut Bencher) {
15     let encoded = "example.com";
16     let config = Config::default();
17     bench.iter(|| config.to_unicode(black_box(encoded)));
18 }
19 
to_unicode_merged_label(bench: &mut Bencher)20 fn to_unicode_merged_label(bench: &mut Bencher) {
21     let encoded = "Beispiel.xn--vermgensberater-ctb";
22     let config = Config::default();
23     bench.iter(|| config.to_unicode(black_box(encoded)));
24 }
25 
to_ascii_puny_label(bench: &mut Bencher)26 fn to_ascii_puny_label(bench: &mut Bencher) {
27     let encoded = "abc.ابج";
28     let config = Config::default();
29     bench.iter(|| config.to_ascii(black_box(encoded)));
30 }
31 
to_ascii_simple(bench: &mut Bencher)32 fn to_ascii_simple(bench: &mut Bencher) {
33     let encoded = "example.com";
34     let config = Config::default();
35     bench.iter(|| config.to_ascii(black_box(encoded)));
36 }
37 
to_ascii_merged(bench: &mut Bencher)38 fn to_ascii_merged(bench: &mut Bencher) {
39     let encoded = "beispiel.vermögensberater";
40     let config = Config::default();
41     bench.iter(|| config.to_ascii(black_box(encoded)));
42 }
43 
44 benchmark_group!(
45     benches,
46     to_unicode_puny_label,
47     to_unicode_ascii,
48     to_unicode_merged_label,
49     to_ascii_puny_label,
50     to_ascii_simple,
51     to_ascii_merged,
52 );
53 benchmark_main!(benches);
54