#stream #invoke #raii #wrapper #action #guard #drop

stream-guard

围绕Stream的RAII包装,在丢弃时调用自定义操作

1 个稳定版本

1.0.0 2024年5月31日

#595 in 异步


4 个Crates中使用(通过 lighthouse-client

MIT 许可证

6KB

Stream Guard

crates.io Build

一个小的RAII包装,围绕一个Stream(异步迭代器),在丢弃时自动调用用户定义的操作。


lib.rs:

一个小的RAII包装,围绕一个Stream,在丢弃时自动调用用户定义的操作。

例如

#
async fn f() {
    let mut s = stream::iter(0..3).guard(|| println!("Dropped!"));
    while let Some(i) = s.next().await {
        println!("{}", i);
    }
}

会打印

0
1
2
Dropped!

依赖项

~1–1.6MB
~32K SLoC