1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use super::assert_stream; use crate::stream::{AbortHandle, Abortable}; use crate::Stream; /// Creates a new `Abortable` stream and an `AbortHandle` which can be used to stop it. /// /// This function is a convenient (but less flexible) alternative to calling /// `AbortHandle::new` and `Abortable::new` manually. /// /// This function is only available when the `std` or `alloc` feature of this /// library is activated, and it is activated by default. pub fn abortable<St>(stream: St) -> (Abortable<St>, AbortHandle) where St: Stream, { let (handle, reg) = AbortHandle::new_pair(); let abortable = assert_stream::<St::Item, _>(Abortable::new(stream, reg)); (abortable, handle) }