#injection #control #inversion #di #ioc #debugging #data-structures

nightly he_di_derive

为 he_di 依赖注入/控制反转框架生成代码

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 中使用

MIT/Apache

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