wonderbox 0.5.0

A minimalistic IoC library.
Documentation

A minimalistic IoC library.

Examples

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())