[][src]Struct futures_core::future::FutureObj

pub struct FutureObj<'a, T>(_);

A custom trait object for polling futures, roughly akin to Box<dyn Future<Output = T> + Send + '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.
  • The Future trait is currently not object safe: The Future::poll method makes uses the arbitrary self types feature and traits in which this feature is used are currently not object safe due to current compiler limitations. (See tracking issue for arbitrary self types for more information #44874)

Methods

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

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

Create a FutureObj from a custom trait object representation.

Trait Implementations

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

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

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

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

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

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

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

type Output = T

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

futures in libcore are unstable

The type of value produced on completion.

Auto Trait Implementations

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

Blanket Implementations

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<T> From for T[src]

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

impl<T, U> TryFrom for T where
    U: Into<T>, 
[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> Any for T where
    T: 'static + ?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.