[−][src]Struct futures_core::future::LocalFutureObj
🔬 This is a nightly-only experimental API. (futures_api
)
futures in libcore are unstable
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 andBox<dyn Trait>
is not available in no_std contexts. - The
Future
trait is currently not object safe: TheFuture::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 arbitray self types for more information #44874)
Methods
impl<'a, T> LocalFutureObj<'a, T>
[src]
[−]
impl<'a, T> LocalFutureObj<'a, T>
pub fn new<F>(f: F) -> LocalFutureObj<'a, T> where
F: 'a + UnsafeFutureObj<'a, T>,
[src]
[−]
pub fn new<F>(f: F) -> LocalFutureObj<'a, T> where
F: 'a + UnsafeFutureObj<'a, T>,
🔬 This is a nightly-only experimental API. (futures_api
)
futures in libcore are unstable
Create a LocalFutureObj
from a custom trait object representation.
pub unsafe fn into_future_obj(self) -> FutureObj<'a, T>
[src]
[−]
pub unsafe fn into_future_obj(self) -> FutureObj<'a, T>
🔬 This is a nightly-only experimental API. (futures_api
)
futures in libcore are unstable
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> Unpin for LocalFutureObj<'a, T>
impl<'a, T> Future for LocalFutureObj<'a, T>
[src]
[+]
impl<'a, T> Future for LocalFutureObj<'a, T>
impl<'a, T> From<FutureObj<'a, T>> for LocalFutureObj<'a, T>
[src]
[+]
impl<'a, T> From<FutureObj<'a, T>> for LocalFutureObj<'a, T>
impl<'a, T> Debug for LocalFutureObj<'a, T>
[src]
[+]
impl<'a, T> Debug for LocalFutureObj<'a, T>
impl<'a, T> Drop for LocalFutureObj<'a, T>
[src]
[+]
impl<'a, T> Drop for LocalFutureObj<'a, T>
impl<'a, F> From<PinBox<F>> for LocalFutureObj<'a, ()> where
F: 'a + Future<Output = ()>,
[src]
[+]
impl<'a, F> From<PinBox<F>> for LocalFutureObj<'a, ()> where
F: 'a + Future<Output = ()>,
impl<'a, F> From<Box<F>> for LocalFutureObj<'a, ()> where
F: 'a + Future<Output = ()>,
[src]
[+]
impl<'a, F> From<Box<F>> for LocalFutureObj<'a, ()> where
F: 'a + Future<Output = ()>,
Auto Trait Implementations
impl<'a, T> !Send for LocalFutureObj<'a, T>
impl<'a, T> !Send for LocalFutureObj<'a, T>
impl<'a, T> !Sync for LocalFutureObj<'a, T>
impl<'a, T> !Sync for LocalFutureObj<'a, T>
Blanket Implementations
impl<F, T, E> TryFuture for F where
F: Future<Output = Result<T, E>>,
[src]
[+]
impl<F, T, E> TryFuture for F where
F: Future<Output = Result<T, E>>,
impl<T> From for T
[src]
[+]
impl<T> From for T
impl<T, U> TryFrom for T where
T: From<U>,
[src]
[+]
impl<T, U> TryFrom for T where
T: From<U>,
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
[+]
impl<T, U> TryInto for T where
U: TryFrom<T>,
impl<T, U> Into for T where
U: From<T>,
[src]
[+]
impl<T, U> Into for T where
U: From<T>,
impl<T> Borrow for T where
T: ?Sized,
[src]
[+]
impl<T> Borrow for T where
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
[+]
impl<T> BorrowMut for T where
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
[+]
impl<T> Any for T where
T: 'static + ?Sized,