Function async_slot::sync::channel [] [src]

pub fn channel<T>() -> (Sender<T>, Receiver<T>)

Creates an in-memory Stream which only preserves last value

This method is somewhat similar to channel(1) but instead of preserving first value sent (and erroring on sender side) it replaces value if consumer is not fast enough and preserves last values sent on any poll of a stream.

Example

extern crate futures;
extern crate async_slot;

use futures::prelude::*;
use futures::stream::iter_ok;

let (tx, rx) = async_slot::channel::<i32>();

tx.send_all(iter_ok(vec![1, 2, 3])).wait();

let received = rx.collect().wait().unwrap();
assert_eq!(received, vec![3]);