pub enum Either<A, B> {
    A(A),
    B(B),
}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>
 
impl<A, B, Request> Service<Request> for Either<A, B>
impl<'pin, A, B> Unpin for Either<A, B>where
    __Either<'pin, A, B>: Unpin,
Auto Trait Implementations§
impl<A, B> Freeze for Either<A, B>
impl<A, B> RefUnwindSafe for Either<A, B>where
    A: RefUnwindSafe,
    B: RefUnwindSafe,
impl<A, B> Send for Either<A, B>
impl<A, B> Sync for Either<A, B>
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<T> FutureExt for T
 
impl<T> FutureExt for T
source§fn map<U, F>(self, f: F) -> Map<Self, F>
 
fn map<U, F>(self, f: F) -> Map<Self, F>
Map this future’s output to a different type, returning a new future of
the resulting type. Read more
source§fn map_into<U>(self) -> MapInto<Self, U>
 
fn map_into<U>(self) -> MapInto<Self, U>
Map this future’s output to a different type, returning a new future of
the resulting type. Read more
source§fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>
 
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>
Chain on a computation for when a future finished, passing the result of
the future to the provided closure 
f. Read moresource§fn left_future<B>(self) -> Either<Self, B>
 
fn left_future<B>(self) -> Either<Self, B>
source§fn right_future<A>(self) -> Either<A, Self>
 
fn right_future<A>(self) -> Either<A, Self>
source§fn into_stream(self) -> IntoStream<Self>where
    Self: Sized,
 
fn into_stream(self) -> IntoStream<Self>where
    Self: Sized,
Convert this future into a single element stream. Read more
source§fn flatten(self) -> Flatten<Self>
 
fn flatten(self) -> Flatten<Self>
Flatten the execution of this future when the output of this
future is itself another future. Read more
source§fn flatten_stream(self) -> FlattenStream<Self>
 
fn flatten_stream(self) -> FlattenStream<Self>
Flatten the execution of this future when the successful result of this
future is a stream. Read more
source§fn fuse(self) -> Fuse<Self>where
    Self: Sized,
 
fn fuse(self) -> Fuse<Self>where
    Self: Sized,
Fuse a future such that 
poll will never again be called once it has
completed. This method can be used to turn any Future into a
FusedFuture. Read moresource§fn inspect<F>(self, f: F) -> Inspect<Self, F>
 
fn inspect<F>(self, f: F) -> Inspect<Self, F>
Do something with the output of a future before passing it on. Read more
source§fn boxed<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a>>
 
fn boxed<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a>>
Wrap the future in a Box, pinning it. Read more
source§fn boxed_local<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a>>where
    Self: Sized + 'a,
 
fn boxed_local<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a>>where
    Self: Sized + 'a,
Wrap the future in a Box, pinning it. Read more
source§fn unit_error(self) -> UnitError<Self>where
    Self: Sized,
 
fn unit_error(self) -> UnitError<Self>where
    Self: Sized,
Turns a 
Future<Output = T> into a
TryFuture<Ok = T, Error = ()>.source§fn never_error(self) -> NeverError<Self>where
    Self: Sized,
 
fn never_error(self) -> NeverError<Self>where
    Self: Sized,
Turns a 
Future<Output = T> into a
TryFuture<Ok = T, Error = Never>.source§impl<T> Instrument for T
 
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
source§impl<F> IntoFuture for Fwhere
    F: Future,
 
impl<F> IntoFuture for Fwhere
    F: Future,
§type IntoFuture = F
 
type IntoFuture = F
Which kind of future are we turning this into?
source§fn into_future(self) -> <F as IntoFuture>::IntoFuture
 
fn into_future(self) -> <F as IntoFuture>::IntoFuture
Creates a future from a value. Read more
source§impl<M, S, Target, Request> MakeService<Target, Request> for M
 
impl<M, S, Target, Request> MakeService<Target, Request> for M
source§fn poll_ready(
    &mut self,
    cx: &mut Context<'_>
) -> Poll<Result<(), <M as MakeService<Target, Request>>::MakeError>>
 
fn poll_ready( &mut self, cx: &mut Context<'_> ) -> Poll<Result<(), <M as MakeService<Target, Request>>::MakeError>>
Returns 
Poll::Ready when the factory is able to create more services. Read moresource§fn make_service(
    &mut self,
    target: Target
) -> <M as MakeService<Target, Request>>::Future
 
fn make_service( &mut self, target: Target ) -> <M as MakeService<Target, Request>>::Future
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,
source§fn as_service(&mut self) -> AsService<'_, Self, Request>where
    Self: Sized,
 
fn as_service(&mut self) -> AsService<'_, Self, Request>where
    Self: Sized,
source§impl<T, Request> ServiceExt<Request> for T
 
impl<T, Request> ServiceExt<Request> for T
source§fn ready(&mut self) -> Ready<'_, Self, Request> ⓘwhere
    Self: Sized,
 
fn ready(&mut self) -> Ready<'_, Self, Request> ⓘwhere
    Self: Sized,
Yields a mutable reference to the service when it is ready to accept a request.
source§fn ready_and(&mut self) -> ReadyAnd<'_, Self, Request>where
    Self: Sized,
 
fn ready_and(&mut self) -> ReadyAnd<'_, Self, Request>where
    Self: Sized,
👎Deprecated since 0.4.6: please use the 
ServiceExt::ready method insteadYields a mutable reference to the service when it is ready to accept a request.
source§fn ready_oneshot(self) -> ReadyOneshot<Self, Request> ⓘwhere
    Self: Sized,
 
fn ready_oneshot(self) -> ReadyOneshot<Self, Request> ⓘwhere
    Self: Sized,
Yields the service when it is ready to accept a request.
source§fn oneshot(self, req: Request) -> Oneshot<Self, Request> ⓘwhere
    Self: Sized,
 
fn oneshot(self, req: Request) -> Oneshot<Self, Request> ⓘwhere
    Self: Sized,
Consume this 
Service, calling with the providing request once it is ready.source§fn and_then<F>(self, f: F) -> AndThen<Self, F>
 
fn and_then<F>(self, f: F) -> AndThen<Self, F>
Executes a new future after this service’s future resolves. This does
not alter the behaviour of the 
poll_ready method. Read moresource§fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>
 
fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>
Maps this service’s response value to a different value. This does not
alter the behaviour of the 
poll_ready method. Read moresource§fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>
 
fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>
Maps this service’s error value to a different value. This does not
alter the behaviour of the 
poll_ready method. Read moresource§fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>
 
fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>
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>
 
fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F>
Composes a function in front of the service. Read more
source§fn then<F, Response, Error, Fut>(self, f: F) -> Then<Self, F>
 
fn then<F, Response, Error, Fut>(self, f: F) -> Then<Self, F>
Composes an asynchronous function after this service. Read more
source§fn map_future<F, Fut, Response, Error>(self, f: F) -> MapFuture<Self, F>
 
fn map_future<F, Fut, Response, Error>(self, f: F) -> MapFuture<Self, F>
Composes a function that transforms futures produced by the service. Read more
source§impl<Fut> TryFutureExt for Fut
 
impl<Fut> TryFutureExt for Fut
source§fn map_ok<T, F>(self, f: F) -> MapOk<Self, F>
 
fn map_ok<T, F>(self, f: F) -> MapOk<Self, F>
Maps this future’s success value to a different value. Read more
source§fn map_ok_or_else<T, E, F>(self, e: E, f: F) -> MapOkOrElse<Self, F, E>
 
fn map_ok_or_else<T, E, F>(self, e: E, f: F) -> MapOkOrElse<Self, F, E>
Maps this future’s success value to a different value, and permits for error handling resulting in the same type. Read more
source§fn map_err<E, F>(self, f: F) -> MapErr<Self, F>
 
fn map_err<E, F>(self, f: F) -> MapErr<Self, F>
Maps this future’s error value to a different value. Read more
source§fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F>
 
fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F>
Executes another future after this one resolves successfully. The
success value is passed to a closure to create this subsequent future. Read more
source§fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F>
 
fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F>
Executes another future if this one resolves to an error. The
error value is passed to a closure to create this subsequent future. Read more
source§fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F>
 
fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F>
Do something with the success value of a future before passing it on. Read more
source§fn inspect_err<F>(self, f: F) -> InspectErr<Self, F>
 
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F>
Do something with the error value of a future before passing it on. Read more
source§fn try_flatten(self) -> TryFlatten<Self, Self::Ok>
 
fn try_flatten(self) -> TryFlatten<Self, Self::Ok>
Flatten the execution of this future when the successful result of this
future is another future. Read more
source§fn try_flatten_stream(self) -> TryFlattenStream<Self>
 
fn try_flatten_stream(self) -> TryFlattenStream<Self>
Flatten the execution of this future when the successful result of this
future is a stream. Read more