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