teloc 0.2.0

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

struct NumberServiceOptions(i32);

struct ConstService {
    number: i32,
}

#[inject]
fn init_const_service(options: &NumberServiceOptions) -> ConstService {
    ConstService { number: options.0 }
}

#[derive(Dependency)]
struct Controller {
    number_service: ConstService,
}

#[test]
fn test() {
    let options = NumberServiceOptions(10);
    let container = ServiceProvider::new()
        .add_instance(options)
        .add_transient::<ConstService>()
        .add_transient::<Controller>();
    let controller: Controller = container.resolve();

    assert_eq!(controller.number_service.number, 10);
}