nested/
nested.rs

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}