Struct ntex_service::dev::ServiceChainFactory
source · pub struct ServiceChainFactory<T, Req, C = ()> { /* private fields */ }
Expand description
Service factory builder
Implementations§
source§impl<T: ServiceFactory<Req, C>, Req, C> ServiceChainFactory<T, Req, C>
impl<T: ServiceFactory<Req, C>, Req, C> ServiceChainFactory<T, Req, C>
sourcepub fn and_then<F, U>(
self,
factory: F
) -> ServiceChainFactory<AndThenFactory<T, U>, Req, C>where
Self: Sized,
F: IntoServiceFactory<U, T::Response, C>,
U: ServiceFactory<T::Response, C, Error = T::Error, InitError = T::InitError>,
pub fn and_then<F, U>(
self,
factory: F
) -> ServiceChainFactory<AndThenFactory<T, U>, Req, C>where
Self: Sized,
F: IntoServiceFactory<U, T::Response, C>,
U: ServiceFactory<T::Response, C, Error = T::Error, InitError = T::InitError>,
Call another service after call to this one has resolved successfully.
sourcepub fn apply<U>(
self,
tr: U
) -> ServiceChainFactory<ApplyMiddleware<U, T, C>, Req, C>where
U: Middleware<T::Service>,
pub fn apply<U>(
self,
tr: U
) -> ServiceChainFactory<ApplyMiddleware<U, T, C>, Req, C>where
U: Middleware<T::Service>,
Apply middleware to current service factory.
Short version of apply(middleware, chain_factory(...))
sourcepub fn apply_fn<F, R, In, Out, Err>(
self,
f: F
) -> ServiceChainFactory<ApplyFactory<T, Req, C, F, R, In, Out, Err>, In, C>
pub fn apply_fn<F, R, In, Out, Err>( self, f: F ) -> ServiceChainFactory<ApplyFactory<T, Req, C, F, R, In, Out, Err>, In, C>
Apply function middleware to current service factory.
Short version of apply_fn_factory(chain_factory(...), fn)
sourcepub fn then<F, U>(
self,
factory: F
) -> ServiceChainFactory<ThenFactory<T, U>, Req, C>
pub fn then<F, U>( self, factory: F ) -> ServiceChainFactory<ThenFactory<T, U>, Req, C>
Create chain factory to chain on a computation for when a call to the
service finished, passing the result of the call to the next
service U
.
Note that this function consumes the receiving factory and returns a wrapped version of it.
sourcepub fn map<F, Res>(
self,
f: F
) -> ServiceChainFactory<MapFactory<T, F, Req, Res, C>, Req, C>
pub fn map<F, Res>( self, f: F ) -> ServiceChainFactory<MapFactory<T, F, Req, Res, C>, Req, C>
Map this service’s output to a different type, returning a new service of the resulting type.
sourcepub fn map_err<F, E>(
self,
f: F
) -> ServiceChainFactory<MapErrFactory<T, Req, C, F, E>, Req, C>
pub fn map_err<F, E>( self, f: F ) -> ServiceChainFactory<MapErrFactory<T, Req, C, F, E>, Req, C>
Map this service’s error to a different error.
sourcepub fn map_init_err<F, E>(
self,
f: F
) -> ServiceChainFactory<MapInitErr<T, Req, C, F, E>, Req, C>
pub fn map_init_err<F, E>( self, f: F ) -> ServiceChainFactory<MapInitErr<T, Req, C, F, E>, Req, C>
Map this factory’s init error to a different error, returning a new factory.
Trait Implementations§
source§impl<T, R, C> Clone for ServiceChainFactory<T, R, C>where
T: Clone,
impl<T, R, C> Clone for ServiceChainFactory<T, R, C>where
T: Clone,
source§impl<T, R, C> Debug for ServiceChainFactory<T, R, C>where
T: Debug,
impl<T, R, C> Debug for ServiceChainFactory<T, R, C>where
T: Debug,
source§impl<T: ServiceFactory<R, C>, R, C> ServiceFactory<R, C> for ServiceChainFactory<T, R, C>
impl<T: ServiceFactory<R, C>, R, C> ServiceFactory<R, C> for ServiceChainFactory<T, R, C>
§type Response = <T as ServiceFactory<R, C>>::Response
type Response = <T as ServiceFactory<R, C>>::Response
Responses given by the created services.
§type Error = <T as ServiceFactory<R, C>>::Error
type Error = <T as ServiceFactory<R, C>>::Error
Errors produced by the created services.
§type Service = <T as ServiceFactory<R, C>>::Service
type Service = <T as ServiceFactory<R, C>>::Service
The kind of
Service
created by this factory.§type InitError = <T as ServiceFactory<R, C>>::InitError
type InitError = <T as ServiceFactory<R, C>>::InitError
Errors potentially raised while building a service.
source§async fn create(&self, cfg: C) -> Result<Self::Service, Self::InitError>
async fn create(&self, cfg: C) -> Result<Self::Service, Self::InitError>
Create and return a new service value asynchronously.
source§async fn pipeline(
&self,
cfg: Cfg
) -> Result<Pipeline<Self::Service>, Self::InitError>where
Self: Sized,
async fn pipeline(
&self,
cfg: Cfg
) -> Result<Pipeline<Self::Service>, Self::InitError>where
Self: Sized,
Create and return a new service value asynchronously and wrap into a container
source§fn map<F, Res>(
self,
f: F
) -> ServiceChainFactory<MapFactory<Self, F, Req, Res, Cfg>, Req, Cfg>
fn map<F, Res>( self, f: F ) -> ServiceChainFactory<MapFactory<Self, F, Req, Res, Cfg>, Req, Cfg>
Map this service’s output to a different type, returning a new service
of the resulting type.
source§fn map_err<F, E>(
self,
f: F
) -> ServiceChainFactory<MapErrFactory<Self, Req, Cfg, F, E>, Req, Cfg>
fn map_err<F, E>( self, f: F ) -> ServiceChainFactory<MapErrFactory<Self, Req, Cfg, F, E>, Req, Cfg>
Map this service’s error to a different error, returning a new service.
source§fn map_init_err<F, E>(
self,
f: F
) -> ServiceChainFactory<MapInitErr<Self, Req, Cfg, F, E>, Req, Cfg>
fn map_init_err<F, E>( self, f: F ) -> ServiceChainFactory<MapInitErr<Self, Req, Cfg, F, E>, Req, Cfg>
Map this factory’s init error to a different error, returning a new service.
Auto Trait Implementations§
impl<T, Req, C> RefUnwindSafe for ServiceChainFactory<T, Req, C>
impl<T, Req, C> Send for ServiceChainFactory<T, Req, C>
impl<T, Req, C> Sync for ServiceChainFactory<T, Req, C>
impl<T, Req, C> Unpin for ServiceChainFactory<T, Req, C>
impl<T, Req, C> UnwindSafe for ServiceChainFactory<T, Req, C>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T, Req, Cfg> IntoServiceFactory<T, Req, Cfg> for Twhere
T: ServiceFactory<Req, Cfg>,
impl<T, Req, Cfg> IntoServiceFactory<T, Req, Cfg> for Twhere
T: ServiceFactory<Req, Cfg>,
source§fn into_factory(self) -> T
fn into_factory(self) -> T
Convert
Self
to a ServiceFactory