A set of builders to generate Rust source for PHF data structures at compile time.
The provided builders are intended to be used in a Cargo build script to generate a Rust source file that will be included in a library at build time.
Examples
build.rs
extern crate phf_codegen;
use env;
use File;
use ;
use Path;
lib.rs
extern crate phf;
#[derive(Clone)]
enum Keyword {
Loop,
Continue,
Break,
Fn,
Extern,
}
include!(concat!(env!("OUT_DIR"), "/codegen.rs"));
pub fn parse_keyword(keyword: &str) -> Option<Keyword> {
KEYWORDS.get(keyword).cloned()
}
Note
The compiler's stack will overflow when processing extremely long method chains (500+ calls). When generating large PHF data structures, consider looping over the entries or making each call a separate statement:
let entries = ;
let mut builder = new;
for & in &entries
// ...
let mut builder = new;
builder.entry;
builder.entry;
// ...