5个不稳定版本
0.3.2 | 2024年7月21日 |
---|---|
0.3.1 | 2024年5月26日 |
0.3.0 | 2022年11月23日 |
0.2.0 | 2022年11月23日 |
0.1.0 | 2022年5月23日 |
#229 in 异步
1,579 monthly downloads
9KB
115 代码行数(不包括注释)
Drop Stream
一个包装了另一个流并在被释放时调用闭包的流。对于使用流进行数据传输的库非常有用,当对端断开连接时需要连接。
此crate仅依赖于futures-core,因此具有最小依赖性,适用于任何利用futures的项目。
示例
use futures::Stream;
use drop_stream::DropStream;
let test_stream = futures::stream::repeat(true);
{
let wrapped_stream = DropStream::new(test_stream, move || {
println!("Stream has been dropped!");
});
let mut wrapped_stream = Box::pin(wrapped_stream);
let waker = futures::task::noop_waker();
let mut context = futures::task::Context::from_waker(&waker);
assert_eq!(
wrapped_stream.as_mut().poll_next(&mut context),
std::task::Poll::Ready(Some(true))
);
}
致谢
我要感谢 Aadam Zocolo 允许我在crates.io上接管crate名称 "drop-stream" 并替换他的0.1版本。
依赖项
~330–800KB
~18K SLoC