4 个版本
使用旧 Rust 2015
0.1.2 | 2015年1月3日 |
---|---|
0.1.1 | 2014年12月29日 |
0.1.0 | 2014年12月29日 |
0.0.1 | 2014年12月25日 |
#40 in #injection
74KB
1.5K SLoC
Rust 的依赖注入容器
这个库实现了 Rust 的依赖注入容器,模仿了在其他语言和框架中实现的方式。
与其他流行实现不同,它通过使用 one_of
方法提供了一种简单的方式将工厂组合在一起。
示例
let mut registry = di::Registry::new();
registry
.one_of("values", || -> i32 { 1 })
.with_id("a")
.insert();
registry
.one_of("values", |a: i32| -> i32 { a + 2 })
.with_arg("a")
.insert();
match registry.compile() {
Ok(container) => {
if let Some(a) = container.get::<Vec<i32>>("values") {
assert_eq!(vec![ 1, 1 + 2 ], a.take());
}
},
Err(errors) => di::error_printer::pretty_print(&errors),
}
当然,未组合的依赖项也是可用的。
文档
使用方法
将此内容放入您的 Cargo.toml
[dependencies]
di = "*"
并将其放在您的 crate 根目录下
extern crate di;
许可证
MIT
依赖项
~54KB