21个版本 (稳定)
1.0.14 | 2024年1月2日 |
---|---|
1.0.13 | 2023年10月19日 |
1.0.12 | 2023年7月21日 |
1.0.8 | 2023年3月18日 |
0.1.1 | 2019年2月28日 |
#148 in 文件系统
每月下载量 38,280
在 141 个Crate中 使用 (33直接)
10KB
120 代码行
Automod
将目录中的每个源文件作为一个模块引入。
[dependencies]
automod = "1.0"
语法
automod::dir!("path/to/directory");
此宏扩展为一个或多个 mod
项目,每个项目对应于指定目录中的每个源文件。
路径是相对于包含Cargo.toml的目录给出的。
如果给定目录不包含源文件,则这是一个错误。
宏接受一个可选的可视性,以应用于生成的模块: automod::dir!(pub "path/to/directory")
。
示例
假设我们想要保留一个用于个别编号问题的回归测试目录
- tests/
- regression/
- issue1.rs
- issue2.rs
- ...
- issue128.rs
- regression/
我们希望能够将文件放入此目录并自动测试它们,而无需在某个显式的模块列表中列出它们。Automod通过添加包含以下内容的tests/regression.rs来解决此问题:
mod regression {
automod::dir!("tests/regression");
}
宏调用展开为
mod issue1;
mod issue2;
/* ... */
mod issue128;
许可
根据您的选择,此代码在Apache License, Version 2.0或MIT license下获得许可。除非您明确声明,否则您提交给此crate的任何有意贡献,根据Apache-2.0许可证定义,应按照上述双重许可进行,而无需任何附加条款或条件。
依赖项
~0.3–0.8MB
~19K SLoC