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