10个版本 (1个稳定版)
1.0.0 | 2019年12月17日 |
---|---|
0.3.0 | 2019年11月19日 |
0.2.6 | 2019年9月25日 |
0.1.0 | 2019年9月15日 |
#985 in 异步
每月下载量2,542
在 17 个crate中 使用 5个直接使用
17KB
315 行
broadcaster
broadcaster为遵循mpsc模式的任何Stream和Sink提供包装器,以实现广播项目。这意味着发送的任何项目都将被每个接收者接收,而不仅仅是第一个检查的接收者(类似于大多数mpmc流)。例如
use broadcaster::BroadcastChannel;
use futures_util::StreamExt;
let mut chan = BroadcastChannel::new();
chan.send(&5i32).await?;
assert_eq!(chan.next().await, Some(5));
let mut chan2 = chan.clone();
chan2.send(&6i32).await?;
assert_eq!(chan.next().await, Some(6));
assert_eq!(chan2.next().await, Some(6));
lib.rs
:
broadcaster为遵循mpsc模式的任何Stream和Sink提供包装器,以实现广播项目。这意味着发送的任何项目都将被每个接收者接收,而不仅仅是第一个检查的接收者(类似于大多数mpmc流)。例如
use broadcaster::BroadcastChannel;
use futures_util::StreamExt;
let mut chan = BroadcastChannel::new();
chan.send(&5i32).await?;
assert_eq!(chan.next().await, Some(5));
let mut chan2 = chan.clone();
chan2.send(&6i32).await?;
assert_eq!(chan.next().await, Some(6));
assert_eq!(chan2.next().await, Some(6));
依赖
~0.6–1.1MB
~18K SLoC