Macro claim::assert_ready_err
source · [−]macro_rules! assert_ready_err {
($cond:expr,) => { ... };
($cond:expr) => { ... };
($cond:expr, $($arg:tt)+) => { ... };
}
Expand description
Asserts that expression returns Poll::Ready(Err(E))
variant.
This macro is available for Rust 1.36+.
Uses
Assertions are always checked in both debug and release builds, and cannot be disabled.
See debug_assert_ready_err!
for assertions that are not enabled in release builds by default.
Custom messages
This macro has a second form, where a custom panic message can be provided
with or without arguments for formatting. See std::fmt
for syntax for this form.
Examples
let res: Poll<Result<i32, ()>> = Poll::Ready(Err(()));
assert_ready_err!(res);
Value of E
type from the Poll::Ready(Err(E))
will also be returned from this macro call:
let res: Poll<Result<i32, String>> = Poll::Ready(Err("Something went wrong".to_string()));
let message = assert_ready_err!(res);
assert_eq!("Something went wrong", message);
Both Poll::Ready(Ok(..))
and Poll::Pending
variants will cause panic:
ⓘ
let res: Poll<Result<i32, ()>> = Poll::Ready(Ok(42));
assert_ready_err!(res); // Will panic
ⓘ
let res: Poll<Result<i32, ()>> = Poll::Pending;
assert_ready_err!(res); // Will panic