Struct futures_util::future::Fuse [−][src]
Future for the fuse
method.
Implementations
impl<Fut: Future> Fuse<Fut>
[src]
pub fn terminated() -> Self
[src]
Creates a new Fuse
-wrapped future which is already terminated.
This can be useful in combination with looping and the select!
macro, which bypasses terminated futures.
Examples
use futures::channel::mpsc; use futures::future::{Fuse, FusedFuture, FutureExt}; use futures::select; use futures::stream::StreamExt; use futures::pin_mut; let (sender, mut stream) = mpsc::unbounded(); // Send a few messages into the stream sender.unbounded_send(()).unwrap(); sender.unbounded_send(()).unwrap(); drop(sender); // Use `Fuse::terminated()` to create an already-terminated future // which may be instantiated later. let foo_printer = Fuse::terminated(); pin_mut!(foo_printer); loop { select! { _ = foo_printer => {}, () = stream.select_next_some() => { if !foo_printer.is_terminated() { println!("Foo is already being printed!"); } else { foo_printer.set(async { // do some other async operations println!("Printing foo from `foo_printer` future"); }.fuse()); } }, complete => break, // `foo_printer` is terminated and the stream is done } }
Trait Implementations
impl<Fut: Debug> Debug for Fuse<Fut>
[src]
impl<Fut: Future> FusedFuture for Fuse<Fut>
[src]
fn is_terminated(&self) -> bool
[src]
impl<Fut: Future> Future for Fuse<Fut>
[src]
type Output = Fut::Output
The type of value produced on completion.
fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Fut::Output>
[src]
impl<'__pin, Fut> Unpin for Fuse<Fut> where
__Origin<'__pin, Fut>: Unpin,
[src]
__Origin<'__pin, Fut>: Unpin,
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<F> IntoFuture for F where
F: Future,
[src]
F: Future,
type Output = <F as Future>::Output
🔬 This is a nightly-only experimental API. (
into_future
)The output that the future will produce on completion.
type Future = F
🔬 This is a nightly-only experimental API. (
into_future
)Which kind of future are we turning this into?
pub fn into_future(self) -> <F as IntoFuture>::Future
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<F, T, E> TryFuture for F where
F: Future<Output = Result<T, E>> + ?Sized,
[src]
F: Future<Output = Result<T, E>> + ?Sized,
type Ok = T
The type of successful values yielded by this future
type Error = E
The type of failures yielded by this future
pub fn try_poll(
self: Pin<&mut F>,
cx: &mut Context<'_>
) -> Poll<<F as Future>::Output>
[src]
self: Pin<&mut F>,
cx: &mut Context<'_>
) -> Poll<<F as Future>::Output>
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,