Expand description
Compile-time generated maps and sets.
The phf::Map
and phf::Set
types have roughly comparable performance to
a standard hash table, but can be generated as compile-time static values.
§Usage
If the macros
Cargo feature is enabled, the phf_map
, phf_set
,
phf_ordered_map
, and phf_ordered_set
macros can be used to construct
the PHF type. This currently requires a nightly compiler.
[dependencies]
phf = { version = "0.7.24", features = ["macros"] }
#![feature(proc_macro_hygiene)]
use phf::{phf_map, phf_set};
static MY_MAP: phf::Map<&'static str, u32> = phf_map! {
"hello" => 1,
"world" => 2,
};
static MY_SET: phf::Set<&'static str> = phf_set! {
"hello world",
"hola mundo",
};
fn main() {
assert_eq!(MY_MAP["hello"], 1);
assert!(MY_SET.contains("hello world"));
}
Alternatively, you can use the phf_codegen crate to generate PHF datatypes in a build script. This method can be used with a stable compiler.
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.
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.