1 个不稳定版本
0.1.0 | 2021年2月5日 |
---|
#1708 in 异步
34KB
729 行
jstream-ext
此 crate 为 futures stream 特性提供了一些额外的扩展。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
jstream-ext = "0.1"
lib.rs
:
简介
扩展了 Stream
和 TryStream
特性,这些特性在我与它们一起工作时至少实现了几次。
要使用这些扩展,只需 use
此 crate 导出的 JStreamExt
或 JTryStreamExt
项。
摘要
以下是此 crate 提供的各种扩展列表
Stream
扩展
Stream
的扩展由 JStreamExt
特性提供。
dedup
- 从流中删除重复项fold_mut
- 与fold
类似,但要求一个(&mut T, Self::Item)
->Future<Output=()>
而不是(T, Self::Item)
->Future<Output=T>
的折叠函数。first
- 将流转换为只发出源发出的第一个项目的 future。nth
- 将流转换为 future,在跳过指定数量的前导项后发出一个项目。
TryStream
扩展
TryStream
的扩展由 JTryStreamExt
特性提供。
try_first
- 将流转换为只发射源发出的第一个结果的future。try_nth
- 将流转换为future,在跳过指定数量的前导项目后发射一个项目,或者在遇到错误时立即发射错误。try_filter_map_ok
- 与filter_map
类似,但它允许您在Ok
部分对TryStream
进行过滤映射,并在遇到错误时立即发射错误。try_dedup
- 从流中删除重复的项目,但在看到错误时也立即发射错误。fuse_on_fail
- 如果看到错误,当在发射了Err(Self::Error)
项目后调用try_poll_next
时,会“熔断”流。这也使得TryStream
实现FusedStream
,无论源是否实现了该特性。try_fold_mut
- 与try_fold
类似,但要求一个(&mut T, Self::Ok)
->Future<Output=Result<(), Self::Error>>
而不是一个(T, Self::Ok)
->Future<Output=Result<T, Self::Error>>
折叠函数。
依赖项
~1MB
~15K SLoC