1 个不稳定版本
0.1.0 | 2020年4月5日 |
---|
#1760 在 异步
3,568 每月下载量
6KB
101 行
stream-reduce
Rust中流的reduce函数
[dependencies]
stream-reduce = "0.1"
lib.rs
:
此crate为Streams提供了一个类似fold
的reduce
函数,但没有初始值。如果流为空,函数返回包含None
的Future
,否则返回Some(value)
。
基于David Tolnay的reduce
crate for iterators。
示例
use stream_reduce::Reduce;
use futures::stream;
async {
// Reduce a non-empty stream into Some(value)
let v = vec![1usize, 2, 3, 4, 5];
let sum = stream::iter(v).reduce(|a, b| async move { a + b }).await;
assert_eq!(Some(15), sum);
// Reduce an empty stream into None
let v = Vec::<usize>::new();
let product = stream::iter(v).reduce(|a, b| async move { a * b }).await;
assert_eq!(None, product);
}
依赖项
~1MB
~16K SLoC