[−][src]Struct std::future::FutureObj
🔬 This is a nightly-only experimental API. (futures_api
#50547)
futures in libcore are unstable
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 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 arbitrary self types for more information #44874)
Methods
impl<'a, T> FutureObj<'a, T>
[src]
impl<'a, T> FutureObj<'a, T>
pub fn new<F>(f: F) -> FutureObj<'a, T> where
F: Send + UnsafeFutureObj<'a, T>,
[src]
pub fn new<F>(f: F) -> FutureObj<'a, T> where
F: Send + UnsafeFutureObj<'a, T>,
🔬 This is a nightly-only experimental API. (futures_api
#50547)
futures in libcore are unstable
Create a FutureObj
from a custom trait object representation.
Trait Implementations
impl<'a, T> Future for FutureObj<'a, T>
[src]
impl<'a, T> Future for FutureObj<'a, T>
type Output = T
🔬 This is a nightly-only experimental API. (futures_api
#50547)
futures in libcore are unstable
The result of the Future
.
fn poll(self: PinMut<FutureObj<'a, T>>, cx: &mut Context) -> Poll<T>
[src]
fn poll(self: PinMut<FutureObj<'a, T>>, cx: &mut Context) -> Poll<T>
🔬 This is a nightly-only experimental API. (futures_api
#50547)
futures in libcore are unstable
Attempt to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more
impl<'a, T> Unpin for FutureObj<'a, T>
[src]
impl<'a, T> Unpin for FutureObj<'a, T>
impl<'a, T> Send for FutureObj<'a, T>
[src]
impl<'a, T> Send for FutureObj<'a, T>
impl<'a, T> Debug for FutureObj<'a, T>
[src]
impl<'a, T> Debug for FutureObj<'a, T>
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
[src]
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl<'a, T> From<FutureObj<'a, T>> for LocalFutureObj<'a, T>
[src]
impl<'a, T> From<FutureObj<'a, T>> for LocalFutureObj<'a, T>
fn from(f: FutureObj<'a, T>) -> LocalFutureObj<'a, T>
[src]
fn from(f: FutureObj<'a, T>) -> LocalFutureObj<'a, T>
Performs the conversion.
impl<'a, F> From<Box<F>> for FutureObj<'a, ()> where
F: 'a + Send + Future<Output = ()>,
[src]
impl<'a, F> From<Box<F>> for FutureObj<'a, ()> where
F: 'a + Send + Future<Output = ()>,
impl<'a, F> From<PinBox<F>> for FutureObj<'a, ()> where
F: 'a + Send + Future<Output = ()>,
[src]
impl<'a, F> From<PinBox<F>> for FutureObj<'a, ()> where
F: 'a + Send + Future<Output = ()>,
Auto Trait Implementations
Blanket Implementations
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>,
type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
Performs the conversion.
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
Performs the conversion.
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,
ⓘImportant traits for &'a mut Ifn borrow(&self) -> &T
[src]
fn borrow(&self) -> &T
Immutably borrows from an owned value. Read more
impl<T> BorrowMut for T where
T: ?Sized,
[src]
impl<T> BorrowMut for T where
T: ?Sized,
ⓘImportant traits for &'a mut Ifn borrow_mut(&mut self) -> &mut T
[src]
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Any for T where
T: 'static + ?Sized,
[src]
impl<T> Any for T where
T: 'static + ?Sized,
fn get_type_id(&self) -> TypeId
[src]
fn get_type_id(&self) -> TypeId
🔬 This is a nightly-only experimental API. (get_type_id
#27745)
this method will likely be replaced by an associated static
Gets the TypeId
of self
. Read more