4 个版本
使用旧的 Rust 2015
0.2.1 | 2017年6月29日 |
---|---|
0.2.0 | 2017年6月24日 |
0.1.1 | 2017年6月20日 |
0.1.0 | 2017年6月20日 |
#11 in #inversion
在 he_di 中使用
42KB
649 代码行
he_di 提供了一个 derive 宏,用于生成您在 crate 中定义的数据结构的 Component 特性的实现,允许它们从 Container 中 '注册' 和 '解析'
此功能基于 Rust 的 #[derive] 机制,就像您会使用来自动生成内置的 Clone、Copy、Debug 或其他特性的实现一样。它能够为大多数结构体生成实现。目前包括具有复杂泛型类型或特质边界的枚举。在极少数情况下,对于特别复杂的类型,您可能需要手动实现特质。
如何使用
这些 derive 需要 Rust 编译器版本 1.15 或更高。
- 在 Cargo.toml 中将 he_di = "0.2" 添加为依赖项。
- 在 Cargo.toml 中将 he_di_derive = "0.2" 添加为依赖项。
- 如果您的项目中有 main.rs,请在这里添加
add #[macro_use] extern crate he_di_derive
。 - 如果您的项目中有 lib.rs,请在这里添加
#[macro_use] extern crate he_di_derive
。 - 在您想要标记为 Component 并注入或被注入的结构体上使用
#[derive(Component)]
。 - 通过
#[interface(MyTrait)]
指定此 Component 实现的接口
#[derive(Component)] 宏
支持属性
- interface: 对于一个结构体,此 Component 将实现的 Traits 的名称
- 注入:对于一个结构体的属性,将属性标记为依赖另一个组件(目前仅支持
Box<Interface>
语法)
依赖项
~2MB
~45K SLoC