bundler

Crates.iobundler
lib.rsbundler
version0.1.1
sourcesrc
created_at2018-04-22 22:45:27.843357
updated_at2018-04-23 12:50:51.709157
descriptionCreates a single-source-file version of a Cargo package.
homepagehttps://github.com/slava-sh/rust-bundler
repositoryhttps://github.com/slava-sh/rust-bundler
max_upload_size
id61868
size13,825
Slava Shklyaev (slava-sh)

documentation

https://docs.rs/bundler

README

rust-bundler

Creates a single-source-file version of a Cargo package.

Build status Coverage report Crates.io

Features

  • Replaces extern crate my_lib; in main.rs with the contents of lib.rs.
  • Expands mod my_mod; declarations into mod my_mod { ... } blocks.

Example

Input:

// 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();
}

Output:

mod internal {
    pub fn hello_world() {
        println!("Hello, world!");
    }
}
pub use internal::hello_world;
fn main() {
    hello_world();
}

More examples in tests/testdata.

Usage

Install:

$ cargo install bundler

Run:

$ bundle path/to/project >output.rs

Library Usage

[dependencies]
bundler = "0.1.1"
extern crate bundler;

fn main() {
    let code = bundler::bundle("path/to/project");
    println!("{}", code);
}

Similar Projects

Commit count: 31

cargo fmt