rust_source_bundler

Crates.iorust_source_bundler
lib.rsrust_source_bundler
version0.2.2
sourcesrc
created_at2022-08-29 14:29:46.797307
updated_at2022-08-29 14:29:46.797307
descriptionLibrary to bundle local Rust library source files into a single file
homepage
repositoryhttps://github.com/adam-bates/rust_source_bundler
max_upload_size
id654531
size18,379
Adam Bates (adam-bates)

documentation

README

Rust Source Bundler

Easily bundle local Rust library files into a single file.

This can be useful when importing or generating Rust code as you can include! or include_str! on a single generated file containing all modules.

Example

You can run the program on this library's source files

cargo run --example rust_source_bundler

Usage

Given the following files:

project/src/
|- helpers/
|  |- inner.rs
|  |- mod.rs
|- lib.rs
|- utils.rs

// project/src/lib.rs

pub mod utils;

mod helpers;

use helpers::helper_fn;

pub fn lib_fn() {}
// project/src/utils.rs

pub fn utils_fn() {}
// project/src/helpers/mod.rs

mod inner;

pub use inner::*;

pub fn helper_fn() {}
// project/src/helpers/inner.rs

pub fn inner_fn() {}

You can use this library:

// project/build.rs to generate code on build

fn main() {
    let code = rust_source_bundler::bundle_source("./project/src", "lib.rs").unwrap();
    
    println!("{code}");

    /* Prints:

pub mod utils {
    pub fn utils_fn() {}
}
mod helpers {
    mod inner {
        pub fn inner_fn() {}
    }

    pub use inner::*;

    pub fn helper_fn() {}
}

use helpers::helper_fn;

pub fn lib_fn() {}

    */
}
Commit count: 18

cargo fmt