1use cphf::{phf_ordered_map, OrderedMap};
2
3pub enum Keyword {
4 Loop,
5 Continue,
6 Break,
7 Fn,
8 Extern,
9}
10
11#[allow(long_running_const_eval)]
12static KEYWORDS: OrderedMap<u32, OrderedMap<&str, Keyword>> = phf_ordered_map! {u32, OrderedMap<&'static str, Keyword>;
13 0 => phf_ordered_map! {&'static str, Keyword;
14 "loop" => Keyword::Loop,
15 "continue" => Keyword::Continue,
16 },
17 2 => phf_ordered_map! {&'static str, Keyword;
18 "break" => Keyword::Break,
19 "fn" => Keyword::Fn,
20 },
21 9 => phf_ordered_map! {&'static str, Keyword;
22 "break" => Keyword::Break,
23 "fn" => Keyword::Fn,
24 "extern" => Keyword::Extern,
25 },
26};
27
28fn main() {
29 let v = KEYWORDS.get(&2).unwrap().get("break");
30
31 let Some(Keyword::Break) = v else {
32 panic!("failed")
33 };
34}