5个版本
0.1.4 | 2023年2月18日 |
---|---|
0.1.3 | 2023年2月6日 |
0.1.2 | 2023年2月3日 |
0.1.1 | 2023年1月30日 |
0.1.0 | 2023年1月30日 |
#1161 在 Rust模式
29 每月下载次数
16KB
摘要
简单的Rust枚举资产加载衍生宏,以及进程宏学习资源!
请随时提出建议或创建拉取请求。
这个库最初的目的是在编译时将资产加载到二进制文件中。这最终也允许运行时加载,但现在这将是一个未来的扩展。
待办事项
目前我为此项目扩展的想法列表。请使用
todo
标签为此列表创建一个问题。
- 文件名前缀
- 运行时加载
- 静态(初始化时一次)
- 动态(流动加载)
-
编译时加载
结构
由于 asset-derive
旨在成为一个过程宏crate,同时还要包含一个特质实现(要派生的),因此项目结构有些复杂。这是因为当前过程宏crate必须与正常crate完全分开定义的烦恼。
幸运的是,外部API保持不变,asset-derive
现在将作为特质实现crate,依赖于 asset-derive-macro
,后者包含实际的宏实现。目前这是不可避免的,但我已经尽最大努力不改变外部API,并使其尽可能简单。
代码树
asset-derive/ <-- Crate to use (trait implementation)
src/
examples/ <-- Houses examples using the trait and macro itself.
asset-derive/ <-- Actual internal derive macro crate. Will be pulled in by main crate.
src/
示例
use asset_derive::Asset;
#[derive(Asset)]
#[asset(basepath = "./icons/", ext = "svg")]
enum Icon {
#[asset(ext = "png")]
Select,
Folder,
#[asset(filename = "folder-dim")]
FolderDim,
}
Icon::Select.fetch()
Icon::FolderDim.fetch_static()
依赖项
~1.5MB
~35K SLoC