#merge #cargo #competitive #cargo-subcommand #single-file #cargo-toml #codingame

bin+lib cargo-merge

一个将包的源代码合并到单个文件的 cargo 子命令

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 日

450Cargo 插件

MIT 许可证

17KB
226 代码行

Cargo merge

一个将你的包源代码合并到单个文件的 cargo 子命令。

此命令的初始目的是将整个包合并为一个单源文件,可用于竞争性编程平台。

它通过使用正则表达式检测模块导入来扩展模块导入,并在过程中重写一些 "use" 语句。

特性

  • 合并包的库crate
  • 合并包的主二进制crate中的模块
  • 合并外部crate
    • 基于路径的crate(声明为依赖项的crate,如下所示:my-crate = { path = "path/to/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