4 个版本
0.2.2 | 2021 年 4 月 26 日 |
---|---|
0.2.1 | 2021 年 2 月 5 日 |
0.2.0 | 2021 年 2 月 4 日 |
0.1.0 | 2021 年 2 月 4 日 |
450 在 Cargo 插件 中
17KB
226 代码行
Cargo merge
一个将你的包源代码合并到单个文件的 cargo 子命令。
此命令的初始目的是将整个包合并为一个单源文件,可用于竞争性编程平台。
它通过使用正则表达式检测模块导入来扩展模块导入,并在过程中重写一些 "use" 语句。
特性
- 合并包的库crate
- 合并包的主二进制crate中的模块
- 合并外部crate
- 基于路径的crate(声明为依赖项的crate,如下所示:
my-crate = { path = "path/to/crate" }
)
- 基于路径的crate(声明为依赖项的crate,如下所示:
- 通过从源代码中清除
eprint!
和eprintln!
宏来静音标准错误输出
示例
可以在 集成测试数据 中找到工作的基本示例。
安装
只需运行以下命令
cargo install cargo-merge
用法
只需在您的包文件夹层次结构中调用 cargo 子命令(它可以是包含您的 Cargo.toml
文件的任何文件夹下的任何文件夹)
cargo merge
这将生成一个合并文件在 target/merge/merged.rs
。
选项
长标志 | 短标志 | 描述 |
---|---|---|
-s |
--silence-standard-error-output |
从您的代码中删除所有 eprint! 和 eprintln! 宏的使用。 |
致谢
这个小项目受到了 rust-sourcebundler 的极大启发。它采用了相同的方法和目标,但我认为 cargo 子命令方法更少侵入性。此外,我希望也能积极维护这个项目。
依赖项
~5–16MB
~167K SLoC