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
10KB
174 代码行(不含注释)
include_walk
使用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