2 个版本
0.1.1 | 2019 年 3 月 12 日 |
---|---|
0.1.0 | 2019 年 3 月 12 日 |
#1704 在 异步
19KB
305 行
async-option
此 crate 提供了一个异步、原子 Option
类型。
从高层次来看,此 crate 完全类似于 Arc<Mutex<Option<T>>>
,只是增加了对异步操作的支持。给定一个 Aption<T>
,您可以调用 poll_put
尝试将值放入 Option
,或者调用 poll_take
从 Option
中取出值。两种方法如果 Option
被占用或为空,将返回 Async::NotReady
,此时将安排当前任务在将来的某个时刻被通知 poll_*
调用可能成功。 Aption<T>
还可以作为 Sink<SinkItem = T>
和 Stream<Item = T>
使用,作为单个元素通道。
您也可以使用 poll_close
来关闭 Aption<T>
。在 poll_close
之后,任何 poll_put
都将失败,下一次 poll_take
将返回当前值(如果有的话),此后 poll_take
将返回错误。
依赖项
~215KB