当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust ready用法及代码示例


本文简要介绍rust语言中 Macro std::task::ready 的用法。

用法

pub macro ready($e : expr) {
    ...
}

提取 Poll<T> 的成功类型。

该宏通过提前返返回烘焙 Pending 信号的传播。

例子

#![feature(ready_macro)]

use std::task::{ready, Context, Poll};
use std::future::{self, Future};
use std::pin::Pin;

pub fn do_poll(cx: &mut Context<'_>) -> Poll<()> {
    let mut fut = future::ready(42);
    let fut = Pin::new(&mut fut);

    let num = ready!(fut.poll(cx));
    // ... use num

    Poll::Ready(())
}

ready! 调用扩展为:

let num = match fut.poll(cx) {
    Poll::Ready(t) => t,
    Poll::Pending => return Poll::Pending,
};

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Macro std::task::ready。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。