3 个版本
0.1.2 | 2023年4月14日 |
---|---|
0.1.1 | 2023年4月14日 |
0.1.0 | 2023年4月14日 |
#100 在 #options
每月 31 次下载
7KB
80 行
some-mut
一个实用库,主要用于访问 Some
然后不可失败地 take()
。
例如,在 Future
实现,你可能需要多次重新进入函数,这时不能直到子未来 Ready
才能调用 take()
// for a theoretical `StreamExt::forward()`/`SinkExt::send_all()` implementation:
fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), Error>> {
if let Some(buffered_item) = self.buffered_item.some_mut() {
ready!(self.sink.poll_ready(cx))?;
self.sink.start_send(buffered_item.take())?;
}
// ...
}
许可协议
本项目采用 MIT 许可协议。请参阅 LICENSE 文件以获取更多信息。
lib.rs
:
一个实用库,主要用于访问 Some
然后不可失败地 take()
。
例如,在 Future
实现,你可能需要多次重新进入函数,这时不能直到子未来 Ready
才能调用 take()
use some_mut::OptionExt;
// for a theoretical `StreamExt::forward()`/`SinkExt::send_all()` implementation:
fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), Error>> {
let me = self.project();
if let Some(buffered_item) = me.buffered_item.some_mut() {
ready!(me.sink.poll_ready(cx))?;
me.sink.start_send(buffered_item.take())?;
}
// ...
}