4 个版本
0.2.0 | 2022年2月19日 |
---|---|
0.1.2 | 2022年2月1日 |
0.1.1 | 2022年2月1日 |
0.1.0 | 2022年2月1日 |
#934 在 异步
14KB
215 代码行
Stream KMerge
K-way merge for rust streams.
如何使用 Cargo
[dependencies]
stream-kmerge = "0.1"
如何在你的 crate 中使用
use stream_kmerge::kmerge_by;
示例
use futures::{stream, StreamExt};
use stream_kmerge::kmerge_by;
#[tokio::main(flavor = "current_thread")]
async fn main() {
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],
);
}
许可证
双许可,以兼容 Rust 项目。
许可协议为 Apache 许可证 2.0 版本 https://www.apache.org/licenses/LICENSE-2.0 或 MIT 许可证 https://opensource.org/licenses/MIT,任选其一。此文件不得复制、修改或分发,除非根据这些条款。
项目的一部分已从 https://github.com/rust-itertools/itertools 复制,该项目受 Apache 许可证 2.0 版本 https://www.apache.org/licenses/LICENSE-2.0 或 MIT 许可证 https://opensource.org/licenses/MIT 的版权保护,任选其一。有关原始代码,请参阅 https://github.com/rust-itertools/itertools/blob/6c4fc2f8e745fe4780578dfa4feb44ccccffb521/src/kmerge_impl.rs。
依赖关系
~1MB
~17K SLoC