See the demo crate.
Tweak your Cargo.toml to use a build script:
[package]
# ...
build = "build.rs"
[build-dependencies]
pocket-resources = "*"Create a build.rs file:
extern crate pocket_resources;
fn main() {
pocket_resources::package(&[("resources","path/to/image.png")]).unwrap();
}Include the resources where you want:
include!(concat!(env!("OUT_DIR"), "/pocket-resources.rs"));This creates a public enum named Resource. If you want to name it something else, or if you want it private, you should use a module.
You can then load the resource directly from the enum:
let data: &[u8] = ResourceId::PathToImagepng.load();Or load it at runtime:
let data: &[u8] = ResourceId::from_name("path/to/image.png").unwrap().load();