2个版本 (1个稳定版)

1.0.0 2020年1月5日
0.1.0 2020年1月2日

#2111 in 过程宏

MIT许可证

6KB
55

incdir

Documentation

编译时包含目录。

这个crate的工作方式类似于Rust中的include_bytes!宏,但它包含整个目录并将它们存储在来自phf crate的完美哈希函数映射中。
为了跨平台的统一性,映射中存储的路径中的反斜杠将被替换为正斜杠。

include_dir!宏处理的目录中的所有路径名都必须是有效的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()
}

许可证

MIT

依赖项

~1.5MB
~36K SLoC