cphf 1.0.0

Compile-time perfect hash function data structures
Documentation
use cphf::{phf_ordered_map, OrderedMap};

pub enum Keyword {
    Loop,
    Continue,
    Break,
    Fn,
    Extern,
}

#[allow(long_running_const_eval)]
static KEYWORDS: OrderedMap<u32, OrderedMap<&str, Keyword>> = phf_ordered_map! {u32, OrderedMap<&'static str, Keyword>;
    0 => phf_ordered_map! {&'static str, Keyword;
        "loop" => Keyword::Loop,
        "continue" => Keyword::Continue,
    },
    2 => phf_ordered_map! {&'static str, Keyword;
        "break" => Keyword::Break,
        "fn" => Keyword::Fn,
    },
    9 => phf_ordered_map! {&'static str, Keyword;
        "break" => Keyword::Break,
        "fn" => Keyword::Fn,
        "extern" => Keyword::Extern,
    },
};

fn main() {
    let v = KEYWORDS.get(&2).unwrap().get("break");

    let Some(Keyword::Break) = v else {
        panic!("failed")
    };
}