Enum tower_async::util::Either
source · pub enum Either<A, B> {
Left(A),
Right(B),
}
Available on crate feature
util
only.Expand description
Combine two different service types into a single type.
Both services must be of the same request, response, and error types.
Either
is useful for handling conditional branching in service middleware
to different inner service types.
Variants§
Trait Implementations§
source§impl<A, B, Request> Service<Request> for Either<A, B>where
A: Service<Request>,
B: Service<Request, Response = A::Response, Error = A::Error>,
impl<A, B, Request> Service<Request> for Either<A, B>where A: Service<Request>, B: Service<Request, Response = A::Response, Error = A::Error>,
impl<A: Copy, B: Copy> Copy for Either<A, B>
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> 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<M, S, Target, Request> MakeService<Target, Request> for Mwhere
M: Service<Target, Response = S>,
S: Service<Request>,
impl<M, S, Target, Request> MakeService<Target, Request> for Mwhere M: Service<Target, Response = S>, S: Service<Request>,
§type Response = <S as Service<Request>>::Response
type Response = <S as Service<Request>>::Response
Available on crate feature
make
only.Responses given by the service
§type Error = <S as Service<Request>>::Error
type Error = <S as Service<Request>>::Error
Available on crate feature
make
only.Errors produced by the service
§type MakeError = <M as Service<Target>>::Error
type MakeError = <M as Service<Target>>::Error
Available on crate feature
make
only.Errors produced while building a service.
source§async fn make_service(
&mut self,
target: Target
) -> impl Future<Output = Result<<M as MakeService<Target, Request>>::Service, <M as MakeService<Target, Request>>::MakeError>>
async fn make_service( &mut self, target: Target ) -> impl Future<Output = Result<<M as MakeService<Target, Request>>::Service, <M as MakeService<Target, Request>>::MakeError>>
Available on crate feature
make
only.Create and return a new service value asynchronously.
source§fn into_service(self) -> IntoService<Self, Request>where
Self: Sized,
fn into_service(self) -> IntoService<Self, Request>where Self: Sized,
Available on crate feature
make
only.source§fn as_service(&mut self) -> AsService<'_, Self, Request>where
Self: Sized,
fn as_service(&mut self) -> AsService<'_, Self, Request>where Self: Sized,
Available on crate feature
make
only.source§impl<T, Request> ServiceExt<Request> for Twhere
T: Service<Request> + ?Sized,
impl<T, Request> ServiceExt<Request> for Twhere T: Service<Request> + ?Sized,
source§async fn oneshot(self, req: Request) -> Result<Self::Response, Self::Error>where
Self: Sized,
async fn oneshot(self, req: Request) -> Result<Self::Response, Self::Error>where Self: Sized,
Available on crate feature
util
only.Consume this
Service
, calling it with the provided request once and only once.source§fn and_then<F>(self, f: F) -> AndThen<Self, F>where
Self: Sized,
F: Clone,
fn and_then<F>(self, f: F) -> AndThen<Self, F>where Self: Sized, F: Clone,
Available on crate feature
util
only.Executes a new future after this service’s future resolves. Read more
source§fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>where
Self: Sized,
F: FnOnce(Self::Response) -> Response + Clone,
fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>where Self: Sized, F: FnOnce(Self::Response) -> Response + Clone,
Available on crate feature
util
only.Maps this service’s response value to a different value. Read more
source§fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>where
Self: Sized,
F: FnOnce(Self::Error) -> Error + Clone,
fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>where Self: Sized, F: FnOnce(Self::Error) -> Error + Clone,
Available on crate feature
util
only.Maps this service’s error value to a different value. Read more
source§fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>where
Self: Sized,
Error: From<Self::Error>,
F: FnOnce(Result<Self::Response, Self::Error>) -> Result<Response, Error> + Clone,
fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>where Self: Sized, Error: From<Self::Error>, F: FnOnce(Result<Self::Response, Self::Error>) -> Result<Response, Error> + Clone,
Available on crate feature
util
only.Maps this service’s result type (
Result<Self::Response, Self::Error>
)
to a different value, regardless of whether the future succeeds or
fails. Read moresource§fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F>where
Self: Sized,
F: FnMut(NewRequest) -> Request,
fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F>where Self: Sized, F: FnMut(NewRequest) -> Request,
Available on crate feature
util
only.Composes a function in front of the service. Read more
source§fn filter<F, NewRequest>(self, filter: F) -> Filter<Self, F>where
Self: Sized,
F: Predicate<NewRequest>,
fn filter<F, NewRequest>(self, filter: F) -> Filter<Self, F>where Self: Sized, F: Predicate<NewRequest>,
Available on crate features
util
and filter
only.source§fn filter_async<F, NewRequest>(self, filter: F) -> AsyncFilter<Self, F>where
Self: Sized,
F: AsyncPredicate<NewRequest>,
fn filter_async<F, NewRequest>(self, filter: F) -> AsyncFilter<Self, F>where Self: Sized, F: AsyncPredicate<NewRequest>,
Available on crate features
util
and filter
only.Composes this service with an
AsyncFilter
that conditionally accepts or
rejects requests based on an [async predicate]. Read moresource§fn then<F, Response, Error, Fut>(self, f: F) -> Then<Self, F>where
Self: Sized,
Error: From<Self::Error>,
F: FnOnce(Result<Self::Response, Self::Error>) -> Fut + Clone,
Fut: Future<Output = Result<Response, Error>>,
fn then<F, Response, Error, Fut>(self, f: F) -> Then<Self, F>where Self: Sized, Error: From<Self::Error>, F: FnOnce(Result<Self::Response, Self::Error>) -> Fut + Clone, Fut: Future<Output = Result<Response, Error>>,
Available on crate feature
util
only.Composes an asynchronous function after this service. Read more