#![allow(dead_code)]
type Any = ();
type TypeId = ();
type Option = ();
type ProvideModule = ();
type Provider = ();
type IntrospectVisitor = ();
type DependenciesAccess = ();
type DependenciesVisitor = ();
#[derive(Default)]
pub struct Module;
#[chassis::module]
impl Module {
pub fn provide_nothing() -> () {
()
}
}
#[chassis::injector(modules = [Module])]
pub trait Injector {
fn resolve_nothing(&self) -> ();
}
trait MyInjector {
fn provide(&self) -> bool;
}
impl<T: Injector> MyInjector for T {
fn provide(&self) -> bool {
true
}
}
#[test]
fn check() {
let injector = <dyn Injector>::new().unwrap();
injector.resolve_nothing();
assert!(injector.provide());
}