chassis 0.2.0

Compile-time dependency injection framework
Documentation
pub struct Dummy;

#[derive(Default)]
pub struct DummyProvider;

#[chassis::module]
impl DummyProvider {
    pub fn provide_dummy() -> Dummy {
        Dummy
    }
}

#[chassis::injector(modules = [DummyProvider])]
pub trait DummyFactory {
    fn resolve_dummy(&self) -> Dummy;
}

#[test]
fn check() {
    let injector = <dyn DummyFactory>::new().unwrap();
    injector.resolve_dummy();
}