Struct stream_cancel::Valved

source ·
pub struct Valved<S>(/* private fields */);
Expand description

A Valved is wrapper around a Stream that enables the stream to be turned off remotely to initiate a graceful shutdown. When a new Valved is created with Valved::new, a handle to that Valved is also produced; when [Trigger::close] is called on that handle, the wrapped stream will immediately yield None to indicate that it has completed.

Implementations§

source§

impl<S> Valved<S>

source

pub fn new(stream: S) -> (Trigger, Self)
where S: Stream,

Make the given stream cancellable.

To cancel the stream, call [Trigger::close] on the returned handle.

source

pub fn into_inner(self) -> S

Consumes this wrapper, returning the underlying stream.

Trait Implementations§

source§

impl<S: Clone> Clone for Valved<S>

source§

fn clone(&self) -> Valved<S>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<S: Debug> Debug for Valved<S>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<S> Stream for Valved<S>
where S: Stream,

§

type Item = <S as Stream>::Item

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_> ) -> Poll<Option<Self::Item>>

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
source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. Read more

Auto Trait Implementations§

§

impl<S> !RefUnwindSafe for Valved<S>

§

impl<S> Send for Valved<S>
where S: Send,

§

impl<S> Sync for Valved<S>
where S: Sync,

§

impl<S> Unpin for Valved<S>
where S: Unpin,

§

impl<S> !UnwindSafe for Valved<S>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<S> StreamExt for S
where S: Stream,

source§

fn take_until_if<U>(self, until: U) -> TakeUntilIf<Self, U>
where U: Future<Output = bool>, Self: Sized,

Take elements from this stream until the given future resolves. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<S, T, E> TryStream for S
where S: Stream<Item = 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
source§

fn try_poll_next( self: Pin<&mut S>, cx: &mut Context<'_> ) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

Poll this TryStream as if it were a Stream. Read more