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