#assets #binary #stable #embed #channel #macro #static

build bindata

一个宏,用于将静态资源嵌入二进制文件,适用于稳定发布频道

2个版本

使用旧Rust 2015

0.1.1 2018年3月23日
0.1.0 2018年3月22日

构建工具 中排名 454

Apache-2.0

7KB
51 代码行

bindata


bindata 是一个Rust宏,可以在编译时将文件加载到Rust二进制文件中。您可以使用此宏将二进制资源嵌入到可执行文件中。此宏适用于稳定发布频道,但在幕后使用自定义 derive 宏,因此它肯定不会在 Rustc 1.15 之前的版本上工作。它到目前为止仅在 rustc 1.24.1 上进行了测试。

安装

此包在编译器的稳定版本上编译。将其添加到 Cargo.toml 中的依赖项,如下所示:

[dependencies]
bindata = "0.1.0"

用法

#[macro_use]
extern crate bindata;

mod assets {
    bindata!("tests/data/a"); // A relative path from your package root.
}

fn main() {
    if let Some(asset) = assets::get("tests/data/a/georgie-porgie") {
        assert_eq!(Ok("pudding and pie\n"), str::from_utf8(&asset));
    }
}

您还可以指定多个资源目录

#[macro_use]
extern crate bindata;

mod assets {
    bindata!("tests/data/a", "tests/data/b"); // A relative path from your package root.
}

fn main() {
    if let Some(asset) = assets::get("tests/data/a/georgie-porgie") {
        assert_eq!(Ok("pudding and pie\n"), str::from_utf8(&asset));
    }
}

依赖项

~2–8.5MB
~85K SLoC