Crate phf

source · []
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 method can be used with a stable compiler (rustc version 1.30+)

[dependencies]
phf = { version = "0.7.24", 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)

Modules

An immutable map constructed at compile time.
An immutable set constructed at compile time.

Structs

An immutable map 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.