Skip to main content

RequestExecutionFuture

Struct RequestExecutionFuture 

Source
pub struct RequestExecutionFuture<'a, T> { /* private fields */ }
Expand description

Future that installs one request root only while its child is polled.

The root owns counters across suspension. Ambient state is restored after every poll, including completion and unwinding, so interleaved futures cannot observe or charge each other’s request. The already-boxed child is type-erased so this poll state machine is shared across endpoint future types; that retains one allocation and adds one indirect child poll.

Trait Implementations§

Source§

impl<T> Future for RequestExecutionFuture<'_, T>

Source§

type Output = T

The type of value produced on completion.
Source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempts to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more

Auto Trait Implementations§

§

impl<'a, T> !RefUnwindSafe for RequestExecutionFuture<'a, T>

§

impl<'a, T> !Send for RequestExecutionFuture<'a, T>

§

impl<'a, T> !Sync for RequestExecutionFuture<'a, T>

§

impl<'a, T> !UnwindSafe for RequestExecutionFuture<'a, T>

§

impl<'a, T> Freeze for RequestExecutionFuture<'a, T>
where Pin<Box<dyn Future<Output = T> + 'a>>: Freeze,

§

impl<'a, T> Unpin for RequestExecutionFuture<'a, T>
where Pin<Box<dyn Future<Output = T> + 'a>>: Unpin,

§

impl<'a, T> UnsafeUnpin for RequestExecutionFuture<'a, T>
where Pin<Box<dyn Future<Output = T> + 'a>>: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<F> IntoFuture for F
where F: Future,

Source§

type Output = <F as Future>::Output

The output that the future will produce on completion.
Source§

type IntoFuture = F

Which kind of future are we turning this into?
Source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V