8个版本

0.3.2 2020年4月23日
0.3.1 2020年4月12日
0.3.0 2020年2月29日
0.2.2 2020年2月27日
0.1.1 2020年2月23日

#3 in #include-str

Apache-2.0

10KB
174 代码行(不含注释)

include_walk

Crate Rust

使用include_str!或include_bytes!递归包含内容文件目录。它生成一个Rust输出文件,其中包含一个返回如下HashMap的方法: <文件路径 &'static str,内容文件 &'static str>

安装

include_walk添加到./Cargo.toml的构建依赖中。

[build-dependencies]
include_walk = "0.3.0"

创建一个构建文件./build.rs。以下是一个简单的示例:递归导入./src/assets/中存在的所有文件,并生成一个导入文件./src/assets.rs。默认情况下,文件使用include_str!导入为&'static str

// ./build.rs
fn main() {
    include_walk::from("./src/assets/").to("./src/assets.rs");
}

用例

检索所有内容文件。更多详情请参阅生成的文件:./src/assets.rs。因此,将模块assets包含如下:

// ./src/main.rs
mod assets;

fn main() {
    let assets = assets::get_all();
    let content = assets.get("assets/relative/path/to/files...").unwrap();
    println!("{}", content);
}

方法

方法 必需 默认 描述
::from(path) YES - 指定要导入的目录路径
.to(path) YES - 生成模块的路径
.filter(|path_file| -> bool) NO 禁用 过滤函数,它接受一个回调,该回调可以提供一个path_file PathBuf参数并返回布尔值:对于包含返回true,对于排除文件返回false
.bytes() NO 禁用 使用include_bytes!包含
.str() NO 启用 使用include_str!包含

依赖项

~0.1–7MB
~40K SLoC