pub fn kmerge_by<S, F>(
    xs: impl IntoIterator<Item = S>,
    f: F
) -> KWayMergeBy<S, FnComparator<F>> where
    S: Stream + Unpin,
    F: Fn(&S::Item, &S::Item) -> Ordering
Expand description

Create a stream that merges elements of the contained streams.

use futures::{stream, StreamExt};
use stream_kmerge::kmerge_by;

let streams = vec![stream::iter(vec![1, 3, 5]), stream::iter(vec![2, 3, 4])];

assert_eq!(
    kmerge_by(streams, |x: &usize, y: &usize| y.cmp(&x)).collect::<Vec<usize>>().await,
    vec![1, 2, 3, 3, 4, 5],
);