Expand description
Rust-PHF is a library to generate efficient lookup tables at compile time using perfect hash functions.
It currently uses the CHD algorithm and can generate a 100,000 entry map in roughly .4 seconds.
MSRV (minimum supported rust version) is Rust 1.60.
§Usage
PHF data structures can be constructed via either the procedural
macros in the phf_macros crate or code generation supported by the
phf_codegen crate. If you prefer macros, you can easily use them by
enabling the macros feature of the phf crate, like:
 [dependencies]
 phf = { version = "0.11", features = ["macros"] }
To compile the phf crate with a dependency on
libcore instead of libstd, enabling use in environments where libstd
will not work, set default-features = false for the dependency:
[dependencies]
# to use `phf` in `no_std` environments
phf = { version = "0.11", default-features = false }
§Example (with the macros feature enabled)
use phf::phf_map;
#[derive(Clone)]
pub enum Keyword {
    Loop,
    Continue,
    Break,
    Fn,
    Extern,
}
static KEYWORDS: phf::Map<&'static str, Keyword> = phf_map! {
    "loop" => Keyword::Loop,
    "continue" => Keyword::Continue,
    "break" => Keyword::Break,
    "fn" => Keyword::Fn,
    "extern" => Keyword::Extern,
};
pub fn parse_keyword(keyword: &str) -> Option<Keyword> {
    KEYWORDS.get(keyword).cloned()
}Alternatively, you can use the phf_codegen crate to generate PHF datatypes
in a build script.
§Note
Currently, the macro syntax has some limitations and may not work as you want. See #183 or #196 for example.
Modules§
- An immutable map constructed at compile time.
 - An order-preserving immutable map constructed at compile time.
 - An order-preserving immutable set constructed at compile time.
 - An immutable set constructed at compile time.
 
Macros§
- Macro to create a
static(compile-time)Map. - Macro to create a
static(compile-time)OrderedMap. - Macro to create a
static(compile-time)OrderedSet. - Macro to create a
static(compile-time)Set. 
Structs§
- An immutable map constructed at compile time.
 - An order-preserving immutable map constructed at compile time.
 - An order-preserving immutable set constructed at compile time.
 - An immutable set constructed at compile time.
 
Traits§
- A trait implemented by types which can be used in PHF data structures.