#expand #bundle #merge #single-file #cli #source-file

bin+lib bundler

创建 Cargo 包的单源文件版本

2 个版本

使用旧的 Rust 2015

0.1.1 2018 年 4 月 23 日
0.1.0 2018 年 4 月 22 日

#37 in #expand

MIT 许可证

11KB
197

rust-bundler

创建 Cargo 包的单源文件版本。

Build status Coverage report Crates.io

功能

  • 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);
}

类似项目

依赖

~11MB
~219K SLoC