[][src]Struct stream_cancel::Tripwire

pub struct Tripwire(_);

A Tripwire is a convenient mechanism for implementing graceful shutdown over many asynchronous streams. A Tripwire is a Future that is Clone, and that can be passed to StreamExt::take_until. All Tripwire clones are associated with a single Trigger, which is then used to signal that all the associated streams should be terminated.

The Tripwire future resolves to true if the stream should be considered closed, and false if the Trigger has been disabled.

Tripwire is internally implemented using a Shared<oneshot::Receiver<()>>, with the Trigger holding the associated oneshot::Sender. There is very little magic.

Methods

impl Tripwire[src]

pub fn new() -> (Trigger, Self)[src]

Make a new Tripwire and an associated Trigger.

Trait Implementations

impl Clone for Tripwire[src]

impl Debug for Tripwire[src]

impl Future for Tripwire[src]

type Output = bool

The type of value produced on completion.

impl<'pin> Unpin for Tripwire where
    __Tripwire<'pin>: Unpin
[src]

Auto Trait Implementations

impl !RefUnwindSafe for Tripwire

impl Send for Tripwire

impl Sync for Tripwire

impl !UnwindSafe for Tripwire

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> FutureExt for T where
    T: Future + ?Sized
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.