#极简 #控制反转 #生成 #foo #字符串 #derive-debug #wonderbox

nightly wonderbox-codegen

Wonderbox内部用于代码生成。此crate不应直接使用。

3 个版本 (破坏性更改)

0.4.0 2019年5月11日
0.3.0 2019年5月8日
0.1.0 2019年5月6日

#61 in #ioc

MIT/Apache

8KB
170

Wonderbox

Build Status Latest Version Documentation

一个极简的 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>>();
}

依赖关系

~2MB
~46K SLoC