pub enum Either<A, B> {
A(A),
B(B),
}
Expand description
Combine two different new service types into a single type.
Variants§
Trait Implementations§
source§impl<A, B> NewService for Either<A, B>where
A: NewService,
B: NewService<Request = A::Request, Response = A::Response, Error = A::Error, InitError = A::InitError>,
impl<A, B> NewService for Either<A, B>where
A: NewService,
B: NewService<Request = A::Request, Response = A::Response, Error = A::Error, InitError = A::InitError>,
§type Request = <A as NewService>::Request
type Request = <A as NewService>::Request
Requests handled by the service
§type Response = <A as NewService>::Response
type Response = <A as NewService>::Response
Responses given by the service
§type Error = <A as NewService>::Error
type Error = <A as NewService>::Error
Errors produced by the service
§type InitError = <A as NewService>::InitError
type InitError = <A as NewService>::InitError
Errors produced while building a service.
§type Service = EitherService<<A as NewService>::Service, <B as NewService>::Service>
type Service = EitherService<<A as NewService>::Service, <B as NewService>::Service>
The
Service
value created by this factorysource§fn new_service(&self) -> Self::Future
fn new_service(&self) -> Self::Future
Create and return a new service value asynchronously.
Auto Trait Implementations§
impl<A, B> RefUnwindSafe for Either<A, B>where
A: RefUnwindSafe,
B: RefUnwindSafe,
impl<A, B> Send for Either<A, B>where
A: Send,
B: Send,
impl<A, B> Sync for Either<A, B>where
A: Sync,
B: Sync,
impl<A, B> Unpin for Either<A, B>where
A: Unpin,
B: Unpin,
impl<A, B> UnwindSafe for Either<A, B>where
A: UnwindSafe,
B: UnwindSafe,
Blanket Implementations§
source§impl<T> IntoNewService<T> for Twhere
T: NewService,
impl<T> IntoNewService<T> for Twhere
T: NewService,
source§fn into_new_service(self) -> T
fn into_new_service(self) -> T
Convert to an
NewService
source§impl<T> NewServiceExt for Twhere
T: NewService + ?Sized,
impl<T> NewServiceExt for Twhere
T: NewService + ?Sized,
fn apply<S, I, F, R>(
self,
service: I,
f: F
) -> AndThenNewService<Self, ApplyNewService<S, F, R, Self::Response>>where
Self: Sized,
S: NewService<InitError = Self::InitError>,
S::Error: Into<<R::Future as Future>::Error>,
I: IntoNewService<S>,
F: Fn(Self::Response, &mut S::Service) -> R + Clone,
R: IntoFuture<Error = Self::Error>,
fn and_then<F, B>(self, new_service: F) -> AndThenNewService<Self, B>where
Self: Sized,
F: IntoNewService<B>,
B: NewService<Request = Self::Response, Error = Self::Error, InitError = Self::InitError>,
source§fn from_err<E>(self) -> FromErrNewService<Self, E>where
Self: Sized,
E: From<Self::Error>,
fn from_err<E>(self) -> FromErrNewService<Self, E>where
Self: Sized,
E: From<Self::Error>,
NewService
that create service to map this service’s error
and new service’s init error to any error
implementing From
for this services
Error`. Read moresource§fn then<F, B>(self, new_service: F) -> ThenNewService<Self, B>where
Self: Sized,
F: IntoNewService<B>,
B: NewService<Request = Result<Self::Response, Self::Error>, Error = Self::Error, InitError = Self::InitError>,
fn then<F, B>(self, new_service: F) -> ThenNewService<Self, B>where
Self: Sized,
F: IntoNewService<B>,
B: NewService<Request = Result<Self::Response, Self::Error>, Error = Self::Error, InitError = Self::InitError>,
Create
NewService
to chain on a computation for when a call to the
service finished, passing the result of the call to the next
service B
. Read more