Struct futures_util::stream::Abortable [−][src]
pub struct Abortable<T> { /* fields omitted */ }Expand description
A future/stream which can be remotely short-circuited using an AbortHandle.
Implementations
Creates a new Abortable future/stream using an existing AbortRegistration.
AbortRegistrations can be acquired through AbortHandle::new.
When abort is called on the handle tied to reg or if abort has
already been called, the future/stream will complete immediately without making
any further progress.
Examples:
Usage with futures:
use futures::future::{Abortable, AbortHandle, Aborted};
let (abort_handle, abort_registration) = AbortHandle::new_pair();
let future = Abortable::new(async { 2 }, abort_registration);
abort_handle.abort();
assert_eq!(future.await, Err(Aborted));Usage with streams:
let (abort_handle, abort_registration) = AbortHandle::new_pair();
let mut stream = Abortable::new(stream::iter(vec![1, 2, 3]), abort_registration);
abort_handle.abort();
assert_eq!(stream.next().await, None);Checks whether the task has been aborted. Note that all this
method indicates is whether AbortHandle::abort was called.
This means that it will return true even if:
abortwas called after the task had completed.abortwas called while the task was being polled - the task may still be running and will not be stopped untilpollreturns.
Trait Implementations
Attempt to pull out the next value of this stream, registering the
current task for wakeup if the value is not yet available, and returning
None if the stream is exhausted. Read more
Auto Trait Implementations
impl<T> !RefUnwindSafe for Abortable<T>
impl<T> !UnwindSafe for Abortable<T>
Blanket Implementations
Mutably borrows from an owned value. Read more
into_future)The output that the future will produce on completion.
type Future = F
type Future = F
into_future)Which kind of future are we turning this into?
into_future)Creates a future from a value.
