2个版本
使用旧的Rust 2015
0.1.1 | 2018年8月2日 |
---|---|
0.1.0 | 2018年2月2日 |
#24 in #debug-mode
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]
。只需通过引用传递它们,并将它们作为字符串/切片处理。