#branch #stream #future #fork

gabelung

将可克隆项的异步流分支成两个

5个版本

0.2.4 2020年11月6日
0.2.3 2020年5月28日
0.2.2 2020年5月27日
0.2.1 2020年5月26日
0.2.0 2020年5月26日

异步中排名第1011

MIT许可证

17KB
331

crates.io

gabelung

将异步流分支成两个,将所有项推送到两个部分。

生成的分支可以独立轮询,并将从底层流(必须是Clone)接收所有项。

只要两个部分都活着,一个部分永远不会比另一个部分快超过固定数量的项。

此库的目标是通过与futures-rs(待定问题)集成而使其过时。它不依赖于执行器功能,因此是运行时无关的。它已验证在async_stdtokio上都能正常工作。

示例

use futures::{stream, prelude::*};

let (mut left, mut right) = gabelung::new(stream::repeat(1u8));

assert_eq!(left.next().await, Some(1u8));
assert_eq!(right.next().await, Some(1u8));

许可证

MIT


lib.rs:

将异步流分支成两个,将所有项推送到两个部分。

生成的分支可以独立轮询,并将从底层流(必须是Clone)接收所有项。

只要两个部分都活着,一个部分永远不会比另一个部分快超过固定数量的项。

此库是运行时无关的。它已验证在async_stdtokio上都能正常工作。

示例

use futures::{stream, prelude::*};

let (mut left, mut right) = gabelung::new(stream::repeat(1u8));

assert_eq!(left.next().await, Some(1u8));
assert_eq!(right.next().await, Some(1u8));

依赖项

~1–1.5MB
~27K SLoC