3个版本
0.1.2 | 2020年4月7日 |
---|---|
0.1.1 | 2020年1月7日 |
0.1.0 | 2019年12月10日 |
在异步中排名1362
每月下载量134,579
用于212个crates(直接使用9个)
15KB
260 代码行
QuickSink
允许从初始值和一个返回Future的闭包创建一个Sink
的实现。
许可协议
本项目受以下任一协议的许可:
- Apache License, Version 2.0, (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您提交给本项目并有意包含的贡献,将按照上述双重许可,不附加任何额外条款或条件。
lib.rs
:
从初始值和一个返回Future
的闭包创建一个Sink
实现。
这与futures::stream::unfold
如何从一个种子值和一个返回Future的闭包创建一个Stream
实现非常相似。
示例
use async_std::io;
use futures::prelude::*;
use quicksink::Action;
quicksink::make_sink(io::stdout(), |mut stdout, action| async move {
match action {
Action::Send(x) => stdout.write_all(x).await?,
Action::Flush => stdout.flush().await?,
Action::Close => stdout.close().await?
}
Ok::<_, io::Error>(stdout)
});
恐慌
- 如果任何
Sink
方法产生错误,则sink过渡到失败状态,之后不得调用其任何方法,否则将发生恐慌。 - 如果已调用
Sink::poll_close
,之后不得调用其他sink方法,否则将引起恐慌。
依赖关系
~98KB