rust-dicore 0.2.6

rust-dicore: A Rust dependency injection framework inspired by Microsoft.Extensions.DependencyInjection
Documentation
mod common;

use std::sync::Arc;

#[test]
fn module_factory_with_resolver() {
    #[rust_dicore::module]
    mod mf {
        rust_dicore::inject!(factory singleton: super::common::Logger => super::common::Logger { prefix: "factory".into() });
    }
    let p = mf::__rdi_build_provider_mf().unwrap();
    assert_eq!(p.get::<common::Logger>().prefix, "factory");
}

#[test]
fn module_plugin_trait() {
    #[rust_dicore::module]
    mod plugin_svc {
        rust_dicore::inject!(singleton: dyn super::common::IPlugin => super::common::TestPlugin);
    }
    let provider = plugin_svc::__rdi_build_provider_plugin_svc().unwrap();
    let plugin: Arc<dyn common::IPlugin> = provider.get::<dyn common::IPlugin>();
    assert_eq!(plugin.name(), "test_plugin");
}