[][src]Function epoxy_streams::merge

pub fn merge<T: 'static>(streams: Vec<Stream<T>>) -> Stream<T>

Combines all values emitted from a list of same-typed streams into one single stream.

Examples

use epoxy_streams::ReactiveValue;

let stream_host_1: epoxy_streams::Sink<i32> = epoxy_streams::Sink::new();
let stream_1 = stream_host_1.get_stream();

let stream_host_2: epoxy_streams::Sink<i32> = epoxy_streams::Sink::new();
let stream_2 = stream_host_2.get_stream();

let merged = epoxy_streams::merge(vec![stream_1, stream_2]);
let merged_value = merged.clone().to_reactive_value();
let emit_count = merged.count_values().to_reactive_value();

stream_host_1.emit(10);
assert_eq!(*merged_value.get(), 10);

stream_host_2.emit(15);
assert_eq!(*merged_value.get(), 15);

stream_host_2.emit(16);
stream_host_1.emit(17);
assert_eq!(*merged_value.get(), 17);
assert_eq!(*emit_count.get(), 4);