Struct futures_util::future::Abortable [−][src]
#[must_use = "futures/streams do nothing unless you poll them"]pub struct Abortable<T> { /* fields omitted */ }
Expand description
A future/stream which can be remotely short-circuited using an AbortHandle
.
Implementations
impl<T> Abortable<T>
[src]
impl<T> Abortable<T>
[src]pub fn new(task: T, reg: AbortRegistration) -> Self
[src]
pub fn new(task: T, reg: AbortRegistration) -> Self
[src]Creates a new Abortable
future/stream using an existing AbortRegistration
.
AbortRegistration
s 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);
pub fn is_aborted(&self) -> bool
[src]
pub fn is_aborted(&self) -> bool
[src]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:
abort
was called after the task had completed.abort
was called while the task was being polled - the task may still be running and will not be stopped untilpoll
returns.
Trait Implementations
impl<T: Clone> Clone for Abortable<T>
[src]
impl<T: Clone> Clone for Abortable<T>
[src]impl<St> Stream for Abortable<St> where
St: Stream,
[src]
impl<St> Stream for Abortable<St> where
St: Stream,
[src]impl<'__pin, T> Unpin for Abortable<T> where
__Origin<'__pin, T>: Unpin,
[src]
__Origin<'__pin, T>: Unpin,
Auto Trait Implementations
impl<T> !RefUnwindSafe for Abortable<T>
impl<T> Send for Abortable<T> where
T: Send,
T: Send,
impl<T> Sync for Abortable<T> where
T: Sync,
T: Sync,
impl<T> !UnwindSafe for Abortable<T>
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<F> IntoFuture for F where
F: Future,
[src]
impl<F> IntoFuture for F where
F: Future,
[src]type Output = <F as Future>::Output
type Output = <F as Future>::Output
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?
pub fn into_future(self) -> <F as IntoFuture>::Future
[src]
pub fn into_future(self) -> <F as IntoFuture>::Future
[src]into_future
)Creates a future from a value.
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more