2 个版本
使用旧的 Rust 2015
0.1.1 | 2018 年 4 月 23 日 |
---|---|
0.1.0 | 2018 年 4 月 22 日 |
#37 in #expand
11KB
197 行
rust-bundler
创建 Cargo 包的单源文件版本。
功能
- 将
extern crate my_lib;
在main.rs
中的内容替换为lib.rs
的内容。 - 将
mod my_mod;
声明展开为mod my_mod { ... }
块。
示例
输入
// src/lib.rs:
mod internal;
pub use internal::hello_world;
// src/internal.rs:
pub fn hello_world() {
println!("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 bundler
运行
$ bundle path/to/project >output.rs
库使用
[dependencies]
bundler = "0.1.1"
extern crate bundler;
fn main() {
let code = bundler::bundle("path/to/project");
println!("{}", code);
}
类似项目
- lpenz/rust-sourcebundler 基于正则表达式,而此项目操作语法树
- golang.org/x/tools/cmd/bundle (Go)
依赖
~11MB
~219K SLoC