20 个版本
0.3.16 | 2023年9月26日 |
---|---|
0.3.15 | 2022年8月2日 |
0.3.14 | 2022年7月22日 |
0.3.8 | 2022年6月26日 |
0.2.8 | 2021年8月13日 |
#1016 在 命令行工具 中
每月下载量 73
30KB
516 行
rust-bundler-cp
本项目基于 rust-bundler
创建 Cargo 包的单源文件版本。它设计用于像 Codeforces 这样的竞技编程。
我正在使用 rust-bundler-cp 和我的 codeforces 模板 https://github.com/Endle/rust_codeforce_template,
功能
- 使用 Syn 解析和操作完整的语法树,而不是使用正则表达式进行替换。
- 将
extern crate my_lib;
在main.rs
中的替换为lib.rs
的内容。 - 将
mod my_mod;
声明展开为mod my_mod { ... }
块。 - rustfmt 需要在
PATH
中可用,即dnf install rustfmt
。我将在未来的代码中考虑捆绑rustfmt
。
示例
输入
// src/internal.rs:
pub fn hello_world() {
println!("Hello, world!");
}
// src/lib.rs:
mod internal;
pub use internal::hello_world;
// src/main.rs:
extern crate example;
fn main() {
example::hello_world();
}
输出
mod internal {
pub fn hello_world() {
println!("Hello, world!");
}
}
pub use internal::hello_world;
fn main() {
hello_world();
}
更多示例在 tests/testdata。
用法
安装
$ cargo install rust_bundler_cp
运行
$ rust_bundler_cp --input path/to/project >output.rs
$ rust_bundler_cp --input path/to/project --binary a
类似项目
- 本项目基于 slava-sh /rust-bundler
- lpenz/rust-sourcebundler 基于 regular expressions,而本项目操作语法树
- MarcosCosmos/cg-rust-bundler
- golang.org/x/tools/cmd/bundle for Go
依赖项
~4-18MB
~233K SLoC