pub struct ServiceChainFactory<Sf, St, Req> { /* private fields */ }Expand description
A builder for composing service factories and combinators.
Implementations§
Source§impl<Sf: ServiceFactory<St, Req>, St, Req> ServiceChainFactory<Sf, St, Req>
impl<Sf: ServiceFactory<St, Req>, St, Req> ServiceChainFactory<Sf, St, Req>
Sourcepub fn and_then<U>(
self,
factory: impl IntoServiceFactory<U, St, Sf::Res>,
) -> ServiceChainFactory<AndThenFactory<Sf, U>, St, Req>
pub fn and_then<U>( self, factory: impl IntoServiceFactory<U, St, Sf::Res>, ) -> ServiceChainFactory<AndThenFactory<Sf, U>, St, Req>
Chains another factory after this factory’s services.
Sourcepub fn apply<U>(
self,
tr: U,
) -> ServiceChainFactory<ApplyMiddleware<U, Sf>, St, Req>where
U: Middleware<Sf::Service, St>,
pub fn apply<U>(
self,
tr: U,
) -> ServiceChainFactory<ApplyMiddleware<U, Sf>, St, Req>where
U: Middleware<Sf::Service, St>,
Applies middleware to this service factory.
This is shorthand for calling crate::apply on the chained factory.
Sourcepub fn apply_fn<F, In, Out, Err>(
self,
f: F,
) -> ServiceChainFactory<ApplyFactory<F, Sf, St, Req, In, Out, Err>, St, In>
pub fn apply_fn<F, In, Out, Err>( self, f: F, ) -> ServiceChainFactory<ApplyFactory<F, Sf, St, Req, In, Out, Err>, St, In>
Applies an asynchronous function as middleware to this service factory.
This is shorthand for calling crate::apply_fn_factory on the chained
factory.
Sourcepub fn then<F, U>(
self,
factory: F,
) -> ServiceChainFactory<ThenFactory<Sf, U>, St, Req>
pub fn then<F, U>( self, factory: F, ) -> ServiceChainFactory<ThenFactory<Sf, U>, St, Req>
Chains a factory whose services receive the preceding service’s complete
Result.
Sourcepub fn map<F, Res>(
self,
f: F,
) -> ServiceChainFactory<MapFactory<F, Sf, Res>, St, Req>
pub fn map<F, Res>( self, f: F, ) -> ServiceChainFactory<MapFactory<F, Sf, Res>, St, Req>
Maps responses produced by this factory’s services.
Sourcepub fn map_err<F, E>(
self,
f: F,
) -> ServiceChainFactory<MapErrFactory<F, Sf, E>, St, Req>
pub fn map_err<F, E>( self, f: F, ) -> ServiceChainFactory<MapErrFactory<F, Sf, E>, St, Req>
Maps errors produced by this factory’s services.
Sourcepub fn map_init_err<F, E>(
self,
f: F,
) -> ServiceChainFactory<MapInitErr<F, Sf, E>, St, Req>
pub fn map_init_err<F, E>( self, f: F, ) -> ServiceChainFactory<MapInitErr<F, Sf, E>, St, Req>
Maps this factory’s initialization error.
Sourcepub fn readiness<F>(
self,
ready: F,
) -> ServiceChainFactory<AndThenFactory<Sf, FnReadiness<F, Sf::Error>>, St, Req>
pub fn readiness<F>( self, ready: F, ) -> ServiceChainFactory<AndThenFactory<Sf, FnReadiness<F, Sf::Error>>, St, Req>
Adds a custom readiness check to each created service.
Sourcepub fn shutdown<F>(
self,
sh: F,
) -> ServiceChainFactory<AndThenFactory<Sf, FnShutdown<F, Sf::Error>>, St, Req>
pub fn shutdown<F>( self, sh: F, ) -> ServiceChainFactory<AndThenFactory<Sf, FnShutdown<F, Sf::Error>>, St, Req>
Adds a shutdown callback to each created service.
Trait Implementations§
Source§impl<Sf, St, Req> Clone for ServiceChainFactory<Sf, St, Req>where
Sf: Clone,
impl<Sf, St, Req> Clone for ServiceChainFactory<Sf, St, Req>where
Sf: Clone,
Source§impl<Sf, St, Req> Debug for ServiceChainFactory<Sf, St, Req>where
Sf: Debug,
impl<Sf, St, Req> Debug for ServiceChainFactory<Sf, St, Req>where
Sf: Debug,
Source§impl<Sf: ServiceFactory<St, Req>, St, Req> ServiceFactory<St, Req> for ServiceChainFactory<Sf, St, Req>
impl<Sf: ServiceFactory<St, Req>, St, Req> ServiceFactory<St, Req> for ServiceChainFactory<Sf, St, Req>
Source§type Res = <Sf as ServiceFactory<St, Req>>::Res
type Res = <Sf as ServiceFactory<St, Req>>::Res
Response produced by the created services.
Source§type Error = <Sf as ServiceFactory<St, Req>>::Error
type Error = <Sf as ServiceFactory<St, Req>>::Error
Error produced by the created services.
Source§type Service = <Sf as ServiceFactory<St, Req>>::Service
type Service = <Sf as ServiceFactory<St, Req>>::Service
The type of
Service produced by this factory.Source§type InitError = <Sf as ServiceFactory<St, Req>>::InitError
type InitError = <Sf as ServiceFactory<St, Req>>::InitError
Error that can occur while constructing a service.
Source§async fn create(&self, st: &St) -> Result<Sf::Service, Sf::InitError>
async fn create(&self, st: &St) -> Result<Sf::Service, Sf::InitError>
Asynchronously creates a service using the supplied state.
Source§async fn pipeline(
&self,
st: St,
) -> Result<Pipeline<Req, Self::Res, Self::Error>, Self::InitError>where
Self: 'static,
St: 'static,
Req: 'static,
async fn pipeline(
&self,
st: St,
) -> Result<Pipeline<Req, Self::Res, Self::Error>, Self::InitError>where
Self: 'static,
St: 'static,
Req: 'static,
Creates a service and wraps it with its state in a
Pipeline.Source§fn map<F, Res>(
self,
f: F,
) -> ServiceChainFactory<MapFactory<F, Self, Res>, St, Req>
fn map<F, Res>( self, f: F, ) -> ServiceChainFactory<MapFactory<F, Self, Res>, St, Req>
Returns a factory whose services map responses to a different type.
Source§fn map_err<F, E>(
self,
f: F,
) -> ServiceChainFactory<MapErrFactory<F, Self, E>, St, Req>
fn map_err<F, E>( self, f: F, ) -> ServiceChainFactory<MapErrFactory<F, Self, E>, St, Req>
Returns a factory whose services map errors to a different type.
Source§fn map_init_err<F, E>(
self,
f: F,
) -> ServiceChainFactory<MapInitErr<F, Self, E>, St, Req>
fn map_init_err<F, E>( self, f: F, ) -> ServiceChainFactory<MapInitErr<F, Self, E>, St, Req>
Maps this factory’s initialization error to a different error,
returning a new service factory.
Source§fn and_then<U, F>(
self,
f: F,
) -> ServiceChainFactory<AndThenFactory<Self, U>, St, Req>where
Self: Sized,
U: ServiceFactory<St, Self::Res, Error = Self::Error, InitError = Self::InitError>,
F: IntoServiceFactory<U, St, Self::Res>,
fn and_then<U, F>(
self,
f: F,
) -> ServiceChainFactory<AndThenFactory<Self, U>, St, Req>where
Self: Sized,
U: ServiceFactory<St, Self::Res, Error = Self::Error, InitError = Self::InitError>,
F: IntoServiceFactory<U, St, Self::Res>,
Chains another factory after this factory’s services. Read more
Auto Trait Implementations§
impl<Sf, St, Req> Freeze for ServiceChainFactory<Sf, St, Req>
impl<Sf, St, Req> RefUnwindSafe for ServiceChainFactory<Sf, St, Req>
impl<Sf, St, Req> Send for ServiceChainFactory<Sf, St, Req>
impl<Sf, St, Req> Sync for ServiceChainFactory<Sf, St, Req>
impl<Sf, St, Req> Unpin for ServiceChainFactory<Sf, St, Req>
impl<Sf, St, Req> UnsafeUnpin for ServiceChainFactory<Sf, St, Req>
impl<Sf, St, Req> UnwindSafe for ServiceChainFactory<Sf, St, Req>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Sf, St, Req> IntoServiceFactory<Sf, St, Req> for Sfwhere
Sf: ServiceFactory<St, Req>,
impl<Sf, St, Req> IntoServiceFactory<Sf, St, Req> for Sfwhere
Sf: ServiceFactory<St, Req>,
Source§fn into_factory(self) -> Sf
fn into_factory(self) -> Sf
Converts this value into a service factory.