Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Michael-F-Bryan/include_dir

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

219 Commits
219 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

include_dir

Continuous Integration license Crates.io Docs.rs

An evolution of the include_str!() and include_bytes!() macros for embedding an entire directory tree into your binary.

Rendered Documentation:

Getting Started

The include_dir!() macro works very similarly to the normal include_str!() and include_bytes!() macros. You pass the macro a file path and assign the returned value to some static variable.

use include_dir::{include_dir, Dir};

static PROJECT_DIR: Dir = include_dir!("$CARGO_MANIFEST_DIR");

// of course, you can retrieve a file by its full path
let lib_rs = PROJECT_DIR.get_file("src/lib.rs").unwrap();

// you can also inspect the file's contents
let body = lib_rs.contents_utf8().unwrap();
assert!(body.contains("SOME_INTERESTING_STRING"));

// you can search for files (and directories) using glob patterns
#[cfg(feature = "glob")]
{
    let glob = "**/*.rs";
    for entry in PROJECT_DIR.find(glob).unwrap() {
        println!("Found {}", entry.path().display());
    }
}

Features

  • Embed a directory tree into your binary at compile time
  • Find a file in the embedded directory
  • Search for files using a glob pattern (requires the globs feature)
  • File metadata (requires the metadata feature)

To-Do list:

  • Compression?

About

The logical evolution of the include_str macro for embedding a directory tree into your binary.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.