#directory #embedding #macro #include #content

embeddir

将目录中的所有文件嵌入到可执行文件中的宏

2个版本

0.1.1 2020年1月2日
0.1.0 2020年1月2日

#1291进程宏

MIT 协议

5KB

embeddir

Crates.io

在编译时将指定目录中的所有文件嵌入到可执行文件中的宏。

include_bytes! 宏类似。

使用示例

#![feature(proc_macro_hygiene)]

fn main() {
	let dir = embeddir::embed!("examples/static");

	for (filename, contents) in &dir {
		println!("Filename: {}, Contents: \"{}\"",
        filename,
        std::str::from_utf8(contents).unwrap());
	}
}

lib.rs:

一个简单的crate,用于将目录中的所有文件嵌入到可执行文件中。

std::include_bytes! 宏类似。

为了使此宏正常工作,您必须启用 proc_macro_hygiene 功能。

#![功能(proc_macro_hygiene)]

目录中的文件不会递归搜索,因此如果您有如下的目录树

Dir1/
├──File1
├──File2
└──Dir2/
   └──File3

并指定 Dir1 目录以查找文件,File1File2 将被嵌入到您的可执行文件中,但 File3 不会。

依赖关系

~1.5MB
~35K SLoC