Enum std::task::Poll 1.36.0[−][src]
#[must_use = "this `Poll` may be a `Pending` variant, which should be handled"] pub enum Poll<T> { Ready(T), Pending, }
Expand description
指示值是否可用,或者当前任务是否已安排为接收唤醒。
Variants
表示立即准备好值。
表示尚未准备好值。
当一个函数返回 Pending
时,该函数 必须 还必须确保计划在进度完成时唤醒当前任务。
Implementations
通过将函数应用于包含的值,Maps 从 Poll<T>
到 Poll<U>
。
Examples
将 Poll<
String
>
转换为 Poll<
usize
>
,消耗原始值:
let poll_some_string = Poll::Ready(String::from("Hello, World!")); // `Poll::map` 按值获取 self,消耗 `poll_some_string` let poll_some_len = poll_some_string.map(|s| s.len()); assert_eq!(poll_some_len, Poll::Ready(13));Run
如果轮询是 Poll::Ready
值,则返回 true
。
Examples
let x: Poll<u32> = Poll::Ready(2); assert_eq!(x.is_ready(), true); let x: Poll<u32> = Poll::Pending; assert_eq!(x.is_ready(), false);Run
通过对包含的 Poll::Ready(Some(Err))
值应用函数,Maps 将 Poll::Ready<Option<Result<T, E>>>
变为 Poll::Ready<Option<Result<T, F>>>
,让所有其他成员保持不变。
此函数可用于在处理错误时传递成功的结果。
Examples
let res: Poll<Option<Result<u8, _>>> = Poll::Ready(Some("oops".parse())); let res = res.map_err(|_| 0_u8); assert_eq!(res, Poll::Ready(Some(Err(0))));Run
Trait Implementations
impl<T, E, F> FromResidual<Result<Infallible, E>> for Poll<Option<Result<T, F>>> where
F: From<E>,
[src]
impl<T, E, F> FromResidual<Result<Infallible, E>> for Poll<Option<Result<T, F>>> where
F: From<E>,
[src]当不短路时,?
产生的值的类型。
当不短路时,?
产生的值的类型。
在 ?
来决定操作符是应该生成一个值 (因为它返回了 ControlFlow::Continue
),还是将一个值传播回调用者(因为它返回了 ControlFlow::Break
)。 Read more