Trait Import

Source
pub trait Import<Module> {
    // Required method
    fn reference(&self) -> &Module;
}
Expand description

Import exportations made from a module. Should be used with the import macro for a better experience.

use rioc::{injectable, provider};

mod sub {
    use rioc::{injectable, module};

    #[injectable]
    struct InternalType(#[inject(123)] i32); // Not visible outside of module.

    #[injectable]
    pub struct Facade<'a> {
        hidden: &'a InternalType
    }

    #[injectable]
    #[module]
    pub struct Module {
        #[export]
        hidden: InternalType
    }
}

#[injectable]
#[provider]
struct Provider {
    #[import]
    subModule: sub::Module
}

#[provider]
struct InitProvider;

let provider = InitProvider.provide::<Provider>();
let facade = provider.provide::<sub::Facade>();

Required Methods§

Implementors§