[][src]Struct futures::future::LocalFutureObj

pub struct LocalFutureObj<'a, T> { /* fields omitted */ }

A custom trait object for polling futures, roughly akin to Box<dyn Future<Output = T> + 'a>.

This custom trait object was introduced for two reasons:

  • Currently it is not possible to take dyn Trait by value and Box<dyn Trait> is not available in no_std contexts.

Methods

impl<'a, T> LocalFutureObj<'a, T>
[src]

pub fn new<F>(f: F) -> LocalFutureObj<'a, T> where
    F: 'a + UnsafeFutureObj<'a, T>, 
[src]

Create a LocalFutureObj from a custom trait object representation.

pub unsafe fn into_future_obj(self) -> FutureObj<'a, T>
[src]

Converts the LocalFutureObj into a FutureObj To make this operation safe one has to ensure that the UnsafeFutureObj instance from which this LocalFutureObj was created actually implements Send.

Trait Implementations

impl<'a, T> Unpin for LocalFutureObj<'a, T>
[src]

impl<'a, T> Debug for LocalFutureObj<'a, T>
[src]

impl<'a, T> Drop for LocalFutureObj<'a, T>
[src]

impl<'a, T> Future for LocalFutureObj<'a, T>
[src]

type Output = T

🔬 This is a nightly-only experimental API. (futures_api)

futures in libcore are unstable

The result of the Future.

impl<'a, F> From<Pin<Box<F>>> for LocalFutureObj<'a, ()> where
    F: 'a + Future<Output = ()>, 
[src]

impl<'a, T> From<FutureObj<'a, T>> for LocalFutureObj<'a, T>
[src]

impl<'a, F> From<Box<F>> for LocalFutureObj<'a, ()> where
    F: 'a + Future<Output = ()>, 
[src]

Auto Trait Implementations

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

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

Blanket Implementations

impl<T> From for T
[src]

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

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

fn map<U, F>(self, f: F) -> Map<Self, F> where
    F: FnOnce(Self::Output) -> U, 
[src]

Map this future's output to a different type, returning a new future of the resulting type. Read more

fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
    F: FnOnce(Self::Output) -> Fut,
    Fut: Future
[src]

Chain on a computation for when a future finished, passing the result of the future to the provided closure f. Read more

fn join<Fut2>(self, other: Fut2) -> Join<Self, Fut2> where
    Fut2: Future
[src]

Joins the result of two futures, waiting for them both to complete. Read more

fn join3<Fut2, Fut3>(
    self,
    future2: Fut2,
    future3: Fut3
) -> Join3<Self, Fut2, Fut3> where
    Fut2: Future,
    Fut3: Future
[src]

Same as join, but with more futures. Read more

fn join4<Fut2, Fut3, Fut4>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4
) -> Join4<Self, Fut2, Fut3, Fut4> where
    Fut2: Future,
    Fut3: Future + Future,
    Fut4: Future
[src]

Same as join, but with more futures. Read more

fn join5<Fut2, Fut3, Fut4, Fut5>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4,
    future5: Fut5
) -> Join5<Self, Fut2, Fut3, Fut4, Fut5> where
    Fut2: Future,
    Fut3: Future + Future,
    Fut4: Future,
    Fut5: Future
[src]

Same as join, but with more futures. Read more

fn into_stream(self) -> IntoStream<Self>
[src]

Convert this future into a single element stream. Read more

fn flatten(self) -> Flatten<Self> where
    Self::Output: Future
[src]

Flatten the execution of this future when the successful result of this future is itself another future. Read more

fn flatten_stream(self) -> FlattenStream<Self> where
    Self::Output: Stream
[src]

Flatten the execution of this future when the successful result of this future is a stream. Read more

fn fuse(self) -> Fuse<Self>
[src]

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 more

fn inspect<F>(self, f: F) -> Inspect<Self, F> where
    F: FnOnce(&Self::Output), 
[src]

Do something with the output of a future before passing it on. Read more

fn catch_unwind(self) -> CatchUnwind<Self> where
    Self: UnwindSafe
[src]

Catches unwinding panics while polling the future. Read more

fn shared(self) -> Shared<Self> where
    Self::Output: Clone
[src]

Create a cloneable handle to this future where all handles will resolve to the same result. Read more

fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)
[src]

Turn this future into a future that yields () on completion and sends its output to another future on a separate task. Read more

fn boxed(self) -> Pin<Box<Self>>
[src]

Wrap the future in a Box, pinning it.

fn unit_error(self) -> UnitError<Self>
[src]

Turns a Future into a TryFuture with Error = ().

fn poll_unpin(&mut self, lw: &LocalWaker) -> Poll<Self::Output> where
    Self: Unpin
[src]

A convenience for calling Future::poll on Unpin future types.

impl<F, T, E> TryFuture for F where
    F: Future<Output = Result<T, E>>, 
[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<Fut> TryFutureExt for Fut where
    Fut: TryFuture
[src]

fn flatten_sink(self) -> FlattenSink<Self, Self::Ok> where
    Self::Ok: Sink,
    <Self::Ok as Sink>::SinkError == Self::Error
[src]

Flattens the execution of this future when the successful result of this future is a [Sink]. Read more

fn map_ok<T, F>(self, f: F) -> MapOk<Self, F> where
    F: FnOnce(Self::Ok) -> T, 
[src]

Maps this future's success value to a different value. Read more

fn map_err<E, F>(self, f: F) -> MapErr<Self, F> where
    F: FnOnce(Self::Error) -> E, 
[src]

Maps this future's error value to a different value. Read more

fn err_into<E>(self) -> ErrInto<Self, E> where
    Self::Error: Into<E>, 
[src]

Maps this future's Error to a new error type using the Into trait. Read more

fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F> where
    F: FnOnce(Self::Ok) -> Fut,
    Fut: TryFuture<Error = Self::Error>, 
[src]

Executes another future after this one resolves successfully. The success value is passed to a closure to create this subsequent future. Read more

fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F> where
    F: FnOnce(Self::Error) -> Fut,
    Fut: TryFuture<Ok = Self::Ok>, 
[src]

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

fn unwrap_or_else<F>(self, f: F) -> UnwrapOrElse<Self, F> where
    F: FnOnce(Self::Error) -> Self::Ok
[src]

Unwraps this future's ouput, producing a future with this future's Ok type as its Output type. Read more

fn into_future(self) -> IntoFuture<Self>
[src]

Wraps a [TryFuture] into a type that implements Future. Read more

fn try_join<Fut2>(self, other: Fut2) -> TryJoin<Self, Fut2> where
    Fut2: TryFuture<Error = Self::Error>, 
[src]

Joins the result of two futures, waiting for them both to complete or for one to produce an error. Read more

fn try_join3<Fut2, Fut3>(
    self,
    future2: Fut2,
    future3: Fut3
) -> TryJoin3<Self, Fut2, Fut3> where
    Fut2: TryFuture<Error = Self::Error>,
    Fut3: TryFuture<Error = Self::Error>, 
[src]

Same as try_join, but with more futures. Read more

fn try_join4<Fut2, Fut3, Fut4>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4
) -> TryJoin4<Self, Fut2, Fut3, Fut4> where
    Fut2: TryFuture<Error = Self::Error>,
    Fut3: TryFuture<Error = Self::Error>,
    Fut4: TryFuture<Error = Self::Error>, 
[src]

Same as try_join, but with more futures. Read more

fn try_join5<Fut2, Fut3, Fut4, Fut5>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4,
    future5: Fut5
) -> TryJoin5<Self, Fut2, Fut3, Fut4, Fut5> where
    Fut2: TryFuture<Error = Self::Error>,
    Fut3: TryFuture<Error = Self::Error>,
    Fut4: TryFuture<Error = Self::Error>,
    Fut5: TryFuture<Error = Self::Error>, 
[src]

Same as try_join, but with more futures. Read more