pub struct ResponseFuture<S1, S2, Request, F = OnError>where
S1: Service<Request>,
S2: Service<Request, Response = <S1 as Service<Request>>::Response>,
F: FallbackPolicy<<S1 as Service<Request>>::Response>,
S1::Error: Into<BoxedError>,
S2::Error: Into<BoxedError>,{ /* private fields */ }Expand description
Future that completes either with the first service’s successful response, or with the second service’s response.
Trait Implementations§
Source§impl<S1, S2, Request, F> Debug for ResponseFuture<S1, S2, Request, F>
impl<S1, S2, Request, F> Debug for ResponseFuture<S1, S2, Request, F>
Source§impl<S1, S2, Request, F> Future for ResponseFuture<S1, S2, Request, F>where
S1: Service<Request>,
S2: Service<Request, Response = <S1 as Service<Request>>::Response>,
F: FallbackPolicy<<S1 as Service<Request>>::Response>,
S1::Error: Into<BoxedError>,
S2::Error: Into<BoxedError>,
impl<S1, S2, Request, F> Future for ResponseFuture<S1, S2, Request, F>where
S1: Service<Request>,
S2: Service<Request, Response = <S1 as Service<Request>>::Response>,
F: FallbackPolicy<<S1 as Service<Request>>::Response>,
S1::Error: Into<BoxedError>,
S2::Error: Into<BoxedError>,
impl<'pin, S1, S2, Request, F> Unpin for ResponseFuture<S1, S2, Request, F>where
S1: Service<Request>,
S2: Service<Request, Response = <S1 as Service<Request>>::Response>,
F: FallbackPolicy<<S1 as Service<Request>>::Response>,
S1::Error: Into<BoxedError>,
S2::Error: Into<BoxedError>,
PinnedFieldsOf<__ResponseFuture<'pin, S1, S2, Request, F>>: Unpin,
Auto Trait Implementations§
impl<S1, S2, Request, F> Freeze for ResponseFuture<S1, S2, Request, F>
impl<S1, S2, Request, F> RefUnwindSafe for ResponseFuture<S1, S2, Request, F>where
<S2 as Service<Request>>::Error: Sized,
<S1 as Service<Request>>::Error: Sized,
F: RefUnwindSafe,
<S1 as Service<Request>>::Future: RefUnwindSafe,
Request: RefUnwindSafe,
S2: RefUnwindSafe,
<S2 as Service<Request>>::Future: RefUnwindSafe,
impl<S1, S2, Request, F> Send for ResponseFuture<S1, S2, Request, F>
impl<S1, S2, Request, F> Sync for ResponseFuture<S1, S2, Request, F>
impl<S1, S2, Request, F> UnsafeUnpin for ResponseFuture<S1, S2, Request, F>where
<S2 as Service<Request>>::Error: Sized,
<S1 as Service<Request>>::Error: Sized,
F: UnsafeUnpin,
<S1 as Service<Request>>::Future: UnsafeUnpin,
Request: UnsafeUnpin,
S2: UnsafeUnpin,
<S2 as Service<Request>>::Future: UnsafeUnpin,
impl<S1, S2, Request, F> UnwindSafe for ResponseFuture<S1, S2, Request, F>where
<S2 as Service<Request>>::Error: Sized,
<S1 as Service<Request>>::Error: Sized,
F: UnwindSafe,
<S1 as Service<Request>>::Future: UnwindSafe,
Request: UnwindSafe,
S2: UnwindSafe,
<S2 as Service<Request>>::Future: 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> 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,
Source§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