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)8fn 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)14fn 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)20fn 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)26fn 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)32fn 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)38fn 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