Trait runtime_injector::ServiceFactory[][src]

pub trait ServiceFactory<D, R>: 'static where
    R: Service
{ fn invoke(&mut self, injector: &mut Injector) -> InjectResult<Svc<R>>; }

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.

Loading content...

Implementors

impl<F, R> ServiceFactory<(), R> for F where
    F: 'static + FnMut() -> R,
    R: Service
[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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

impl<F, R, T11> ServiceFactory<(T11,), R> for F where
    F: 'static + FnMut(T11) -> R,
    R: Service,
    T11: Request
[src]

Loading content...