teloc 0.2.0

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

#[derive(Dependency)]
struct Controller;

#[derive(Dependency)]
struct Schema1Cloned {
    a: Rc<Controller>,
}

#[derive(Dependency)]
struct Schema2Cloned {
    a: Rc<Controller>,
}

#[test]
fn test_cloned() {
    let container = ServiceProvider::new()
        .add_singleton::<Rc<Controller>>()
        .add_transient::<Schema1Cloned>()
        .add_transient::<Schema2Cloned>();

    let schema1: Schema1Cloned = container.resolve();
    let schema2: Schema2Cloned = container.resolve();

    assert!(Rc::ptr_eq(&schema1.a, &schema2.a));
}