1 #![feature(test)] 2 3 extern crate test; 4 5 use once_cell::sync::Lazy; 6 use ucd_trie::TrieSetOwned; 7 8 #[bench] bench_trie_set(b: &mut test::Bencher)9fn bench_trie_set(b: &mut test::Bencher) { 10 const CHARS: &'static [char] = &['a', 'β', '☃', '']; 11 // const CHARS: &'static [char] = &['a']; 12 static SET: Lazy<TrieSetOwned> = 13 Lazy::new(|| TrieSetOwned::from_scalars(CHARS).unwrap()); 14 15 let set = Lazy::force(&SET); 16 let mut i = 0; 17 b.iter(|| { 18 let c = CHARS[i]; 19 i = (i + 1) % CHARS.len(); 20 21 for _ in 0..10000 { 22 assert!(set.contains_char(c)); 23 } 24 }); 25 } 26