2个版本 (1个稳定版)
1.0.0 | 2020年1月5日 |
---|---|
0.1.0 | 2020年1月2日 |
#2111 in 过程宏
6KB
55 行
incdir
编译时包含目录。
这个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()
}
许可证
依赖项
~1.5MB
~36K SLoC