Enum aws_smithy_http_server::plugin::Either
source · pub enum Either<L, R> {
Left {
value: L,
},
Right {
value: R,
},
}Expand description
Combine two different Future/[Service]/[Layer]/Plugin types into a single type.
Notes on Future
The Future::Output must be identical.
Notes on [Service]
The [Service::Response] and [Service::Error] must be identical.
Variants§
Left
Fields
§
value: LOne type of backing [Service].
Right
Fields
§
value: RThe other type of backing [Service].
Trait Implementations§
source§impl<P, Op, S, L, Le, Ri> Plugin<P, Op, S, L> for Either<Le, Ri>where
Le: Plugin<P, Op, S, L>,
Ri: Plugin<P, Op, S, L>,
impl<P, Op, S, L, Le, Ri> Plugin<P, Op, S, L> for Either<Le, Ri>where Le: Plugin<P, Op, S, L>, Ri: Plugin<P, Op, S, L>,
source§impl<L, R, Request> Service<Request> for Either<L, R>where
L: Service<Request>,
R: Service<Request, Response = L::Response, Error = L::Error>,
impl<L, R, Request> Service<Request> for Either<L, R>where L: Service<Request>, R: Service<Request, Response = L::Response, Error = L::Error>,
impl<'__pin, L, R> Unpin for Either<L, R>where __Origin<'__pin, L, R>: Unpin,
Auto Trait Implementations§
impl<L, R> RefUnwindSafe for Either<L, R>where L: RefUnwindSafe, R: RefUnwindSafe,
impl<L, R> Send for Either<L, R>where L: Send, R: Send,
impl<L, R> Sync for Either<L, R>where L: Sync, R: Sync,
impl<L, R> UnwindSafe for Either<L, R>where L: UnwindSafe, R: 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 Twhere
T: Future + ?Sized,
impl<T> FutureExt for Twhere T: Future + ?Sized,
source§fn map<U, F>(self, f: F) -> Map<Self, F>where
F: FnOnce(Self::Output) -> U,
Self: Sized,
fn map<U, F>(self, f: F) -> Map<Self, F>where F: FnOnce(Self::Output) -> U, Self: Sized,
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>where
Self::Output: Into<U>,
Self: Sized,
fn map_into<U>(self) -> MapInto<Self, U>where Self::Output: Into<U>, Self: Sized,
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>where
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
Self: Sized,
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>where F: FnOnce(Self::Output) -> Fut, Fut: Future, Self: Sized,
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>where
B: Future<Output = Self::Output>,
Self: Sized,
fn left_future<B>(self) -> Either<Self, B>where B: Future<Output = Self::Output>, Self: Sized,
source§fn right_future<A>(self) -> Either<A, Self>where
A: Future<Output = Self::Output>,
Self: Sized,
fn right_future<A>(self) -> Either<A, Self>where A: Future<Output = Self::Output>, Self: Sized,
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>where
Self::Output: Future,
Self: Sized,
fn flatten(self) -> Flatten<Self>where Self::Output: Future, Self: Sized,
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>where
Self::Output: Stream,
Self: Sized,
fn flatten_stream(self) -> FlattenStream<Self>where Self::Output: Stream, Self: Sized,
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>where
F: FnOnce(&Self::Output),
Self: Sized,
fn inspect<F>(self, f: F) -> Inspect<Self, F>where F: FnOnce(&Self::Output), Self: Sized,
Do something with the output of a future before passing it on. Read more
source§fn catch_unwind(self) -> CatchUnwind<Self>where
Self: Sized + UnwindSafe,
fn catch_unwind(self) -> CatchUnwind<Self>where Self: Sized + UnwindSafe,
Catches unwinding panics while polling the future. Read more
Create a cloneable handle to this future where all handles will resolve
to the same result. Read more
source§fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)where
Self: Sized,
fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)where Self: Sized,
Turn this future into a future that yields
() on completion and sends
its output to another future on a separate task. Read moresource§fn boxed<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a, Global>>where
Self: Sized + Send + 'a,
fn boxed<'a>( self ) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a, Global>>where Self: Sized + 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, Global>>where
Self: Sized + 'a,
fn boxed_local<'a>( self ) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>>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 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>,
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<Op, S, PollError> OperationService<Op, (), PollError> for Swhere
Op: OperationShape,
S: Service<<Op as OperationShape>::Input, Response = <Op as OperationShape>::Output, Error = OperationError<<Op as OperationShape>::Error, PollError>>,
impl<Op, S, PollError> OperationService<Op, (), PollError> for Swhere Op: OperationShape, S: Service<<Op as OperationShape>::Input, Response = <Op as OperationShape>::Output, Error = OperationError<<Op as OperationShape>::Error, PollError>>,
type Normalized = <Op as OperationShape>::Input
fn normalize( input: <Op as OperationShape>::Input, _exts: () ) -> <S as OperationService<Op, (), PollError>>::Normalized
source§impl<Op, Ext0, S, PollError> OperationService<Op, (Ext0,), PollError> for Swhere
Op: OperationShape,
S: Service<(<Op as OperationShape>::Input, Ext0), Response = <Op as OperationShape>::Output, Error = OperationError<<Op as OperationShape>::Error, PollError>>,
impl<Op, Ext0, S, PollError> OperationService<Op, (Ext0,), PollError> for Swhere Op: OperationShape, S: Service<(<Op as OperationShape>::Input, Ext0), Response = <Op as OperationShape>::Output, Error = OperationError<<Op as OperationShape>::Error, PollError>>,
type Normalized = (<Op as OperationShape>::Input, Ext0)
fn normalize( input: <Op as OperationShape>::Input, exts: (Ext0,) ) -> <S as OperationService<Op, (Ext0,), PollError>>::Normalized
source§impl<Op, Ext0, Ext1, S, PollError> OperationService<Op, (Ext0, Ext1), PollError> for Swhere
Op: OperationShape,
S: Service<(<Op as OperationShape>::Input, Ext0, Ext1), Response = <Op as OperationShape>::Output, Error = OperationError<<Op as OperationShape>::Error, PollError>>,
impl<Op, Ext0, Ext1, S, PollError> OperationService<Op, (Ext0, Ext1), PollError> for Swhere Op: OperationShape, S: Service<(<Op as OperationShape>::Input, Ext0, Ext1), Response = <Op as OperationShape>::Output, Error = OperationError<<Op as OperationShape>::Error, PollError>>,
type Normalized = (<Op as OperationShape>::Input, Ext0, Ext1)
fn normalize( input: <Op as OperationShape>::Input, exts: (Ext0, Ext1) ) -> <S as OperationService<Op, (Ext0, Ext1), PollError>>::Normalized
source§impl<F, Op, Exts, PollError> OperationServiceExt<Op, Exts, PollError> for Fwhere
Op: OperationShape,
F: OperationService<Op, Exts, PollError>,
impl<F, Op, Exts, PollError> OperationServiceExt<Op, Exts, PollError> for Fwhere Op: OperationShape, F: OperationService<Op, Exts, PollError>,
source§fn canonicalize(self) -> Normalize<Op, Self, PollError>where
Self: Sized,
fn canonicalize(self) -> Normalize<Op, Self, PollError>where Self: Sized,
Convert the
OperationService into a canonicalized [Service].source§impl<T, Request> ServiceExt<Request> for Twhere
T: Service<Request> + ?Sized,
impl<T, Request> ServiceExt<Request> for Twhere T: Service<Request> + ?Sized,
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) -> Ready<'_, Self, Request>where
Self: Sized,
fn ready_and(&mut self) -> Ready<'_, 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 call_all<S>(self, reqs: S) -> CallAll<Self, S>where
Self: Sized,
Self::Error: Into<Box<dyn Error + Sync + Send + 'static, Global>>,
S: Stream<Item = Request>,
fn call_all<S>(self, reqs: S) -> CallAll<Self, S>where Self: Sized, Self::Error: Into<Box<dyn Error + Sync + Send + 'static, Global>>, S: Stream<Item = Request>,
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,
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>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,
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>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,
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>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,
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,
Composes a function in front of the service. Read more
source§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>>,
Composes an asynchronous function after this service. Read more
source§fn map_future<F, Fut, Response, Error>(self, f: F) -> MapFuture<Self, F>where
Self: Sized,
F: FnMut(Self::Future) -> Fut,
Error: From<Self::Error>,
Fut: Future<Output = Result<Response, Error>>,
fn map_future<F, Fut, Response, Error>(self, f: F) -> MapFuture<Self, F>where Self: Sized, F: FnMut(Self::Future) -> Fut, Error: From<Self::Error>, Fut: Future<Output = Result<Response, Error>>,
Composes a function that transforms futures produced by the service. Read more
source§impl<Fut> TryFutureExt for Futwhere
Fut: TryFuture + ?Sized,
impl<Fut> TryFutureExt for Futwhere Fut: TryFuture + ?Sized,
source§fn flatten_sink<Item>(self) -> FlattenSink<Self, Self::Ok>where
Self::Ok: Sink<Item, Error = Self::Error>,
Self: Sized,
fn flatten_sink<Item>(self) -> FlattenSink<Self, Self::Ok>where Self::Ok: Sink<Item, Error = Self::Error>, Self: Sized,
Flattens the execution of this future when the successful result of this
future is a [
Sink]. Read moresource§fn map_ok<T, F>(self, f: F) -> MapOk<Self, F>where
F: FnOnce(Self::Ok) -> T,
Self: Sized,
fn map_ok<T, F>(self, f: F) -> MapOk<Self, F>where F: FnOnce(Self::Ok) -> T, Self: Sized,
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>where
F: FnOnce(Self::Ok) -> T,
E: FnOnce(Self::Error) -> T,
Self: Sized,
fn map_ok_or_else<T, E, F>(self, e: E, f: F) -> MapOkOrElse<Self, F, E>where F: FnOnce(Self::Ok) -> T, E: FnOnce(Self::Error) -> T, Self: Sized,
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>where
F: FnOnce(Self::Error) -> E,
Self: Sized,
fn map_err<E, F>(self, f: F) -> MapErr<Self, F>where F: FnOnce(Self::Error) -> E, Self: Sized,
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>where
F: FnOnce(Self::Ok) -> Fut,
Fut: TryFuture<Error = Self::Error>,
Self: Sized,
fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F>where F: FnOnce(Self::Ok) -> Fut, Fut: TryFuture<Error = Self::Error>, Self: Sized,
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>where
F: FnOnce(Self::Error) -> Fut,
Fut: TryFuture<Ok = Self::Ok>,
Self: Sized,
fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F>where F: FnOnce(Self::Error) -> Fut, Fut: TryFuture<Ok = Self::Ok>, Self: Sized,
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>where
F: FnOnce(&Self::Ok),
Self: Sized,
fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F>where F: FnOnce(&Self::Ok), Self: Sized,
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>where
F: FnOnce(&Self::Error),
Self: Sized,
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F>where F: FnOnce(&Self::Error), Self: Sized,
Do something with the error value of a future before passing it on. Read more
source§fn try_flatten(self) -> TryFlatten<Self, Self::Ok>where
Self::Ok: TryFuture<Error = Self::Error>,
Self: Sized,
fn try_flatten(self) -> TryFlatten<Self, Self::Ok>where Self::Ok: TryFuture<Error = Self::Error>, Self: Sized,
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>where
Self::Ok: TryStream<Error = Self::Error>,
Self: Sized,
fn try_flatten_stream(self) -> TryFlattenStream<Self>where Self::Ok: TryStream<Error = Self::Error>, Self: Sized,
Flatten the execution of this future when the successful result of this
future is a stream. Read more