Crate phf[][src]

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 (minimum supported rust version is 1.46).

[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.

Modules

map

An immutable map constructed at compile time.

ordered_map

An order-preserving immutable map constructed at compile time.

ordered_set

An order-preserving immutable set constructed at compile time.

set

An immutable set constructed at compile time.

Macros

phf_map

Macro to create a static (compile-time) Map.

phf_ordered_map

Macro to create a static (compile-time) OrderedMap.

phf_ordered_set

Macro to create a static (compile-time) OrderedSet.

phf_set

Macro to create a static (compile-time) Set.

Structs

Map

An immutable map constructed at compile time.

OrderedMap

An order-preserving immutable map constructed at compile time.

OrderedSet

An order-preserving immutable set constructed at compile time.

Set

An immutable set constructed at compile time.

Traits

PhfHash

A trait implemented by types which can be used in PHF data structures.