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 method can be used with a stable compiler
(minimum supported rust version is 1.46).
```toml
[dependencies]
phf = { version = "0.9", features = ["macros"] }
```
```
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.
## Note
Currently, the macro syntax has some limitations and may not
work as you want. See [#183] or [#196] for example.
[#183]: https://github.com/rust-phf/rust-phf/issues/183
[#196]: https://github.com/rust-phf/rust-phf/issues/196