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>();