Crates.io | futures-stream-select-all |
lib.rs | futures-stream-select-all |
version | 0.1.2 |
source | src |
created_at | 2017-06-11 13:43:54.46281 |
updated_at | 2017-06-11 13:43:54.46281 |
description | A futures library adapter for merging the output of several streams |
homepage | https://github.com/swizard0/futures-stream-select-all |
repository | https://github.com/swizard0/futures-stream-select-all |
max_upload_size | |
id | 18528 |
size | 4,742 |
A futures library adapter for merging the output of several streams.
It implements a binary-tree structure to efficiently perform select for any amount of undelying streams.
First, add this to your Cargo.toml
:
[dependencies]
futures-stream-select-all = "0.1"
Next, add this to your crate:
extern crate futures-stream-select-all;
use futures_stream_select_all::select_all;
use futures::{stream, Stream, Future};
use futures_stream_select_all::select_all;
let stream_a = stream::iter(vec![Ok(0), Ok(1)]);
let stream_b = stream::iter(vec![Ok(2), Ok(3), Ok(4)]);
let stream_c = stream::iter(vec![Ok(5)]);
let mut values = select_all::<_, _, ()>(vec![stream_a, stream_b, stream_c])
.collect()
.wait()
.unwrap();
values.sort();
assert_eq!(values, vec![0, 1, 2, 3, 4, 5]);
futures-stream-select-all
is primarily distributed under the terms of the MIT license.
See LICENSE-MIT for details.