5 个版本 (破坏性更新)
0.5.0 | 2019 年 6 月 7 日 |
---|---|
0.4.0 | 2019 年 5 月 11 日 |
0.3.0 | 2019 年 5 月 8 日 |
0.2.0 | 2019 年 5 月 8 日 |
0.1.0 | 2019 年 5 月 6 日 |
#16 在 #dependencies
19KB
275 行代码(不含注释)
Wonderbox
一个简约的 IoC 库。
示例
use wonderbox::Container;
trait Foo {}
#[derive(Debug, Default)]
struct FooImpl {
stored_string: String,
}
impl FooImpl {
fn new(stored_string: String) -> Self {
Self { stored_string }
}
}
impl Foo for FooImpl {}
#[test]
fn test() {
let mut container = Container::new();
container.register(|_| "foo".to_string());
container.register(|container| Box::new(FooImpl::new(container.resolve())) as Box<dyn Foo>);
let foo = container.resolve::<Box<dyn Foo>>();
}
lib.rs
:
一个简约的 IoC 库。
示例
use wonderbox::Container;
trait Foo {}
#[derive(Debug, Default)]
struct FooImpl {
stored_string: String,
}
impl FooImpl {
fn new(stored_string: String) -> Self {
Self { stored_string }
}
}
impl Foo for FooImpl {}
let mut container = Container::new();
container.register(|_| "foo".to_string());
container.register(|container| Box::new(FooImpl::new(container.resolve())) as Box<dyn Foo>);
let foo = container.try_resolve::<Box<dyn Foo>>();
assert!(foo.is_some())