Trait runtime_injector_actix::ServiceFactory [−][src]
pub trait ServiceFactory<D>: Service { type Result: Service; fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<Self::Result, InjectError>; }
Expand description
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.
Type parameters
D
- Tuple of this service’s dependencies.
Example
use runtime_injector::{Injector, RequestInfo, ServiceFactory, Svc}; struct Foo; struct Bar; fn factory(foo: Svc<Foo>) -> Bar { todo!() } let injector: Injector = todo!(); factory.invoke(&injector, &RequestInfo::new());
Associated Types
type Result: Service
[src]
Expand description
The resulting service from invoking this service factory.
Required methods
fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<Self::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<Self::Result, InjectError>
Expand description
Invokes this service factory, creating an instance of the service.
Implementors
impl<D, R, E, F> ServiceFactory<D> for FallibleServiceFactory<D, R, E, F> where
R: Service,
E: Service + Error,
F: ServiceFactory<D, Result = Result<R, E>>,
D: Service,
[src]
impl<D, R, E, F> ServiceFactory<D> for FallibleServiceFactory<D, R, E, F> where
R: Service,
E: Service + Error,
F: ServiceFactory<D, Result = Result<R, E>>,
D: Service,
[src]type Result = R
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<FallibleServiceFactory<D, R, E, F> as ServiceFactory<D>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<FallibleServiceFactory<D, R, E, F> as ServiceFactory<D>>::Result, InjectError>
impl<F, R> ServiceFactory<()> for F where
R: Service,
F: Service + FnMut() -> R,
[src]
impl<F, R> ServiceFactory<()> for F where
R: Service,
F: Service + FnMut() -> R,
[src]type Result = <F as FnOnce()>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<()>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<()>>::Result, InjectError>
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)> for F where
R: Service,
F: Service + FnMut(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
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, 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)> for F where
R: Service,
F: Service + FnMut(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
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]type Result = <F as FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
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)> for F where
R: Service,
F: Service + FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
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)> for F where
R: Service,
F: Service + FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
T1: Request,
T2: Request,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
impl<F, R, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
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)> for F where
R: Service,
F: Service + FnMut(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
T2: Request,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
impl<F, R, T3, T4, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T3, T4, T5, T6, T7, T8, T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
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)> for F where
R: Service,
F: Service + FnMut(T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R,
T3: Request,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T3, T4, T5, T6, T7, T8, T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T3, T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T3, T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
impl<F, R, T4, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T4, T5, T6, T7, T8, T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T4, T5, T6, T7, T8, T9, T10, T11) -> R,
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)> for F where
R: Service,
F: Service + FnMut(T4, T5, T6, T7, T8, T9, T10, T11) -> R,
T4: Request,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T4, T5, T6, T7, T8, T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T4, T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
impl<F, R, T5, T6, T7, T8, T9, T10, T11> ServiceFactory<(T5, T6, T7, T8, T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T5, T6, T7, T8, T9, T10, T11) -> R,
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)> for F where
R: Service,
F: Service + FnMut(T5, T6, T7, T8, T9, T10, T11) -> R,
T5: Request,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T5, T6, T7, T8, T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T5, T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
impl<F, R, T6, T7, T8, T9, T10, T11> ServiceFactory<(T6, T7, T8, T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T6, T7, T8, T9, T10, T11) -> R,
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)> for F where
R: Service,
F: Service + FnMut(T6, T7, T8, T9, T10, T11) -> R,
T6: Request,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T6, T7, T8, T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T6, T7, T8, T9, T10, T11)>>::Result, InjectError>
impl<F, R, T7, T8, T9, T10, T11> ServiceFactory<(T7, T8, T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T7, T8, T9, T10, T11) -> R,
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)> for F where
R: Service,
F: Service + FnMut(T7, T8, T9, T10, T11) -> R,
T7: Request,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T7, T8, T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T7, T8, T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T7, T8, T9, T10, T11)>>::Result, InjectError>
impl<F, R, T8, T9, T10, T11> ServiceFactory<(T8, T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T8, T9, T10, T11) -> R,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]
impl<F, R, T8, T9, T10, T11> ServiceFactory<(T8, T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T8, T9, T10, T11) -> R,
T8: Request,
T9: Request,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T8, T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T8, T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T8, T9, T10, T11)>>::Result, InjectError>
impl<F, R, T9, T10, T11> ServiceFactory<(T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T9, T10, T11) -> R,
T9: Request,
T10: Request,
T11: Request,
[src]
impl<F, R, T9, T10, T11> ServiceFactory<(T9, T10, T11)> for F where
R: Service,
F: Service + FnMut(T9, T10, T11) -> R,
T9: Request,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T9, T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T9, T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T9, T10, T11)>>::Result, InjectError>
impl<F, R, T10, T11> ServiceFactory<(T10, T11)> for F where
R: Service,
F: Service + FnMut(T10, T11) -> R,
T10: Request,
T11: Request,
[src]
impl<F, R, T10, T11> ServiceFactory<(T10, T11)> for F where
R: Service,
F: Service + FnMut(T10, T11) -> R,
T10: Request,
T11: Request,
[src]type Result = <F as FnOnce(T10, T11)>::Output
pub fn invoke(
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T10, T11)>>::Result, InjectError>
[src]
&mut self,
injector: &Injector,
request_info: &RequestInfo
) -> Result<<F as ServiceFactory<(T10, T11)>>::Result, InjectError>