= Embed-dir for Rust crate.io package... https://crates.io/crates/embed_dir/0.1.0 You have the great macro `include_bytes!` in Rust But sometimes is not enough. You could need to embed several files, generally in a folder. In order to automate it, this simple and small tool generates code for you. [NOTE] Perhaps in the future this tool could be integrated on compilation process running `build` == Running the tool If you run the program without params or incorrect params number ---- Simple program to generate code to embed files recursivily from a chosen folder. It will generate a source file with code to embed the files on folder. More info: https://github.com/jleahred/embed_dir Usage: embed_dir where: origin-folder string is the path to the folder containing the files to embed destiny-file string is output filename (without .rs extension) example: embed_dir src/public src/embed.rs ---- === Example on own project directory ---- cargo run test_folder src/test/pr.rs ---- == Generated code This will generate a file per directory as: [source, rust] ---- // autogenerated embed_dir on ... macro_rules! gen_get_includes_bytes{ ($rel_path:expr, $($file:expr),+) => { pub fn get(file_name: &str) -> Option<&'static [u8]> { match file_name { $( $file => Some(include_bytes!(concat!($rel_path, $file))), )+ _ => None, } } } } gen_get_includes_bytes!("../../test_folder", "README.adoc", "Cargo.toml", "pr/README.adoc" ); ---- The first string indicates the relative position to files from generated source file. [source, rust] ---- "../../http_static/", ---- Next strings are the files (they can be nested on folders) included. == Using the code Quite simple and direct, just call get on the created module with the file name. [source, rust] ---- match super::http_static2::get("index.html") { Some(content) => content, None => &[] as &'static [u8], } ----