Trait runtime_injector::ServiceFactory [−][src]
A factory for creating instances of a service. All functions of arity 12 or less are automatically service factories if the arguments to that function are valid service requests and the return value is a valid service type.
use runtime_injector::{ServiceFactory, Injector, Svc}; struct Foo; struct Bar; fn factory(foo: Svc<Foo>) -> Bar { todo!() } let mut injector: Injector = todo!(); factory.invoke(&mut injector);
Type parameters
D
- Dependencies of this service as a tuple.R
- Resulting service from invoking this service factory.
Required methods
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
Invokes this service factory, creating an instance of the service.
Implementors
impl<F, R> ServiceFactory<(), R> for F where
F: 'static + FnMut() -> R,
R: Service,
[src]
F: 'static + FnMut() -> R,
R: Service,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), R> for F where
F: 'static + FnMut(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T0: Request,
T1: Request,
T2: Request,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T0: Request,
T1: Request,
T2: Request,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), R> for F where
F: 'static + FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T1: Request,
T2: Request,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T1: Request,
T2: Request,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), R> for F where
F: 'static + FnMut(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T2: Request,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T2: Request,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T3, T4, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T3, T4, T5, T6, T7, T8, T9, T10, T11), R> for F where
F: 'static + FnMut(T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T4, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T4, T5, T6, T7, T8, T9, T10, T11), R> for F where
F: 'static + FnMut(T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T4, T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T5, T6, T7, T8, T9, T10, T11), R> for F where
F: 'static + FnMut(T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T5, T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T6, T7, T8, T9, T10, T11> ServiceFactory<(T6, T7, T8, T9, T10, T11), R> for F where
F: 'static + FnMut(T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T6, T7, T8, T9, T10, T11) -> R,
R: Service,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T7, T8, T9, T10, T11> ServiceFactory<(T7, T8, T9, T10, T11), R> for F where
F: 'static + FnMut(T7, T8, T9, T10, T11) -> R,
R: Service,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T7, T8, T9, T10, T11) -> R,
R: Service,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T8, T9, T10, T11> ServiceFactory<(T8, T9, T10, T11), R> for F where
F: 'static + FnMut(T8, T9, T10, T11) -> R,
R: Service,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T8, T9, T10, T11) -> R,
R: Service,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T9, T10, T11> ServiceFactory<(T9, T10, T11), R> for F where
F: 'static + FnMut(T9, T10, T11) -> R,
R: Service,
T9: Request,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T9, T10, T11) -> R,
R: Service,
T9: Request,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T10, T11> ServiceFactory<(T10, T11), R> for F where
F: 'static + FnMut(T10, T11) -> R,
R: Service,
T10: Request,
T11: Request,
[src]
F: 'static + FnMut(T10, T11) -> R,
R: Service,
T10: Request,
T11: Request,
fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>
[src]
impl<F, R, T11> ServiceFactory<(T11,), R> for F where
F: 'static + FnMut(T11) -> R,
R: Service,
T11: Request,
[src]
F: 'static + FnMut(T11) -> R,
R: Service,
T11: Request,