teloc 0.2.0

Simple, compile-time DI framework for Rust
Documentation
use teloc::{Dependency, Resolver, ServiceProvider};

struct ConstService {
    data: i32,
    data2: u8,
}
impl ConstService {
    pub fn init(data: i32, data2: u8) -> Self {
        ConstService { data, data2 }
    }
}

#[derive(Dependency)]
struct ControllerA {
    #[init(0, 1)]
    service: ConstService,
}

#[derive(Dependency)]
struct ControllerB {
    #[init(1, 5)]
    service: ConstService,
}

#[derive(Dependency)]
struct Schema {
    a: ControllerA,
    b: ControllerB,
}

#[test]
fn test() {
    let container = ServiceProvider::new()
        .add_transient::<ControllerA>()
        .add_transient::<ControllerB>()
        .add_transient::<Schema>();
    let schema: Schema = container.resolve();
    assert_eq!(schema.a.service.data, 0);
    assert_eq!(schema.a.service.data2, 1);
    assert_eq!(schema.b.service.data, 1);
    assert_eq!(schema.b.service.data2, 5);
}