[][src]Enum tower::util::Either

pub enum Either<A, B> {
    A(A),
    B(B),
}

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

A(A)
B(B)

Trait Implementations

impl<A, B> Unpin for Either<A, B> where
    __UnpinStructEither<A, B>: Unpin
[src]

impl<A, B, Request> Service<Request> for Either<A, B> where
    A: Service<Request>,
    B: Service<Request, Response = <A as Service<Request>>::Response>,
    Box<dyn Error + 'static + Sync + Send>: From<<A as Service<Request>>::Error>,
    Box<dyn Error + 'static + Sync + Send>: From<<B as Service<Request>>::Error>, 
[src]

type Response = <A as Service<Request>>::Response

Responses given by the service.

type Error = Box<dyn Error + 'static + Sync + Send>

Errors produced by the service.

type Future = Either<<A as Service<Request>>::Future, <B as Service<Request>>::Future>

The future response value.

impl<A, B> Clone for Either<A, B> where
    A: Clone,
    B: Clone
[src]

impl<A, B> Debug for Either<A, B> where
    A: Debug,
    B: Debug
[src]

impl<A, B, T, AE, BE> Future for Either<A, B> where
    A: Future<Output = Result<T, AE>>,
    B: Future<Output = Result<T, BE>>,
    Box<dyn Error + 'static + Sync + Send>: From<AE>,
    Box<dyn Error + 'static + Sync + Send>: From<BE>, 
[src]

type Output = Result<T, Box<dyn Error + 'static + Sync + Send>>

The type of value produced on completion.

Auto Trait Implementations

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> UnwindSafe for Either<A, B> where
    A: UnwindSafe,
    B: UnwindSafe

impl<A, B> RefUnwindSafe for Either<A, B> where
    A: RefUnwindSafe,
    B: RefUnwindSafe

Blanket Implementations

impl<T, Request> ServiceExt<Request> for T where
    T: Service<Request> + ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<F, T, E> TryFuture for F where
    F: Future<Output = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<T> FutureExt for T where
    T: Future + ?Sized
[src]

impl<Fut> TryFutureExt for Fut where
    Fut: TryFuture + ?Sized
[src]