Crates.io | incdir |
lib.rs | incdir |
version | 1.0.0 |
source | src |
created_at | 2020-01-02 16:51:35.746222 |
updated_at | 2020-01-05 15:01:53.089775 |
description | Compile-time including of directories. |
homepage | |
repository | https://github.com/htrefil/incdir |
max_upload_size | |
id | 194536 |
size | 5,317 |
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.
[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()
}