Skip to content
/ incdir Public

Compile-time including of directories for Rust.

License

Notifications You must be signed in to change notification settings

htrefil/incdir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

incdir

Documentation

Compile-time including of directories.

This crate works in a similar fashion as the include_bytes! macro in Rust, except it includes a whole directory and stores them in a perfect hash function map from the phf crate.
For cross-platform consistency, backslashes in paths stored in the map are replaced with forward slashes.

All pathnames in the directory processed by the include_dir! macro must be valid UTF-8.

Usage

[dependencies]
incdir = "1.0.0"
phf = { version = "*", features = ["macros"] }
#![feature(proc_macro_hygiene)]
use phf::Map;

static TEXTURES: Map<&'static str, &'static [u8]> = incdir::include_dir!("textures");

fn main() {
    // The file is stored in "files/player.png", the directory prefix is stripped in the map.
    let player = TEXTURES.get("player.png").unwrap();
    // Stored in "textures/world/grass.png".
    let grass = TEXTURES.get("world/grass.png").unwrap()
}

License

MIT

About

Compile-time including of directories for Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages