Struct tokio_stream::wrappers::WatchStream[][src]

pub struct WatchStream<T> { /* fields omitted */ }
This is supported on crate feature sync only.

A wrapper around tokio::sync::watch::Receiver that implements Stream.

This stream will always start by yielding the current value when the WatchStream is polled, regardles of whether it was the initial value or sent afterwards.

Examples

use tokio_stream::{StreamExt, wrappers::WatchStream};
use tokio::sync::watch;

let (tx, rx) = watch::channel("hello");
let mut rx = WatchStream::new(rx);

assert_eq!(rx.next().await, Some("hello"));

tx.send("goodbye").unwrap();
assert_eq!(rx.next().await, Some("goodbye"));
use tokio_stream::{StreamExt, wrappers::WatchStream};
use tokio::sync::watch;

let (tx, rx) = watch::channel("hello");
let mut rx = WatchStream::new(rx);

tx.send("goodbye").unwrap();
assert_eq!(rx.next().await, Some("goodbye"));

Implementations

impl<T: 'static + Clone + Unpin + Send + Sync> WatchStream<T>[src]

pub fn new(rx: Receiver<T>) -> Self[src]

Create a new WatchStream.

Trait Implementations

impl<T> Debug for WatchStream<T>[src]

impl<T: Clone + 'static + Send + Sync> Stream for WatchStream<T>[src]

type Item = T

Values yielded by the stream.

impl<T> Unpin for WatchStream<T>[src]

Auto Trait Implementations

impl<T> !RefUnwindSafe for WatchStream<T>

impl<T> Send for WatchStream<T>

impl<T> Sync for WatchStream<T>

impl<T> !UnwindSafe for WatchStream<T>

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, U> Into<U> for T where
    U: From<T>, 
[src]

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.

impl<S, T, E> TryStream for S where
    S: Stream<Item = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future