include_dir
An extension to the include_str!()
macro for embedding an entire directory
tree into your binary.
Getting Started
To embed a directory and its contents into your binary, you'll need to add the
following to your build.rs
script.
extern crate include_dir;
use env;
use Path;
use include_dir;
Integration Tests
Because a large part of this crate's functionality depends on generated code, it's easier to test functionality from the point-of-view of an end user. Therefore, a large proportion of the crate's tests are orchestrated by a Python script.
For each *.rs
file in the integration_tests/
directory, this Python script
will:
- Create a new
--bin
crate in a temporary directory - Copy the
*.rs
file into this new crate and rename it tomain.rs
. - Scan the
*.rs
file for a special pattern indicating which asset directory will be included (relative to this crate's root directory). If the pattern isn't found, use this crate'ssrc/
directory. - Generate a
build.rs
file which will compile in the specified file tree. - Compile and run the new binary test crate.