gabelung

Crates.iogabelung
lib.rsgabelung
version0.2.4
sourcesrc
created_at2020-05-26 15:13:03.802084
updated_at2020-11-06 10:08:10.720912
descriptionBranch an asynchronous stream of cloneable items into two.
homepage
repositoryhttps://github.com/NeoLegends/gabelung
max_upload_size
id246243
size18,171
Moritz Gunz (NeoLegends)

documentation

README

crates.io

gabelung

Branch an asynchronous stream into two, pushing all items to both halves.

The resulting branches can be polled independently from each other and will receive all items from the underlying stream (which must be Clone).

As long as both halves are alive, one half will never outpace the other by more than a fixed number of items.

The goal of this library is to obsolete itself by integration with futures-rs (pending issue). It does not depend on executor features and thus is runtime agnostic. It is verified to work on both async_std and tokio.

Example

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));

License

MIT

Commit count: 34

cargo fmt