#debug-mode #assets #static #release #debugging #include #file-io

static_assets

用于在发布模式下静态包含资源,但在调试模式下动态加载它们的宏。这主要用于游戏,允许你在发布构建中避免文件IO,并在调试模式下动态重新加载资源。

2个版本

使用旧的Rust 2015

0.1.1 2018年8月2日
0.1.0 2018年2月2日

#24 in #debug-mode


x11-input-supercharger使用

CC0 许可

8KB
71

注意:此项目已重命名

GitHub仓库在此:[链接](https://github.com/mistodon/resource) Crate在此:[链接](https://crates.io/crates/resource)

如果有人想要使用static_assets crate名称,请随时联系我,我会将其转交给您。

static_assets

static_assets crate包含用于在发布模式下静态包含资源,但在调试模式下动态加载它们的宏。

这主要用于游戏,允许你在发布构建中避免文件IO,并在调试模式下动态重新加载资源。

用法

[dependencies]
static_assets = "~0.1.0"
#[macro_use]
extern crate static_assets;

let text = asset_str!("assets/text_asset.txt");
println!("Text is: {}", text);

let bytes = asset_bytes!("assets/binary_asset.bin");
println!("Binary data is: {:?}", bytes);

内部结构

asset_str!asset_bytes!宏返回Cow值——分别是Cow<'static, str>Cow<'static, [u8]>

如果你不熟悉Cow类型,这意味着在底层,它们可以是某个const数据的引用(在发布模式下)或堆上的某些实际拥有的数据。

不过你不需要关心这一点,因为上面的Cow类型可以解引用到&str&[u8]。只需通过引用传递它们,并将它们作为字符串/切片处理。

没有运行时依赖项

功能