3 个版本

0.0.3 2022 年 12 月 9 日
0.0.2 2022 年 12 月 9 日
0.0.1 2022 年 12 月 8 日

#1944Rust 模式

MIT/Apache

11KB
177

Tokio-Stream-Extra

扩展 Stream 特性的 crate。有关流的更多详细信息,请参阅 tokio-stream crate 以及 StreamExt 特性文档。

Rust Crates.io Crates.io Crates.io

示例

分割

在分隔项处分割流的项目。分隔项由提供的闭包确定。将返回一个项目类型的向量流,它将生成元素,直到闭包返回 None

[tokio::main]
async fn main() {
    use tokio_stream::{self as stream, StreamExt};
    use tokio_stream_extra::StreamExtra;

    let stream = stream::iter(vec![1,2,0,3,4,0]);
    let mut stream = stream.split(|x| x == &0);

    assert_eq!(stream.next().await, Some(vec![1,2]));
    assert_eq!(stream.next().await, Some(vec![3,4]));

测试

测试覆盖率

要获取测试覆盖率,我使用了 grcov。请参阅 步骤

export RUSTFLAGS="-Cinstrument-coverage"
export LLVM_PROFILE_FILE="./coverage/lib-%p-%m.profraw"
cargo build
cargo test
grcov ./coverage -s . --binary-path ./target/debug/ -t html --branch --ignore-not-existing -o ./target/debug/coverage/
open ./target/debug/coverage/index.html

基于属性的测试

该库使用基于属性的测试。它使用 quickcheck crate。

关于

代码在美丽的爱沙尼亚岛屿 Saaremaa 设计和编写。

依赖

~1–1.6MB
~33K SLoC