68f20c8d8c
This patch adds tests for Rust 1.53.0 and adapts the HTML parser to handle method and implementations list inside of details elements.
34 lines
1.0 KiB
Plaintext
34 lines
1.0 KiB
Plaintext
---
|
|
source: tests/output.rs
|
|
expression: "get_stdout(&[item])"
|
|
---
|
|
anyhow Macro anyhow::ensure rusty-man
|
|
|
|
SYNOPSIS
|
|
macro_rules! ensure {
|
|
($cond:expr, $msg:literal $(,)?) => { ... };
|
|
($cond:expr, $err:expr $(,)?) => { ... };
|
|
($cond:expr, $fmt:expr, $($arg:tt)*) => { ... };
|
|
}
|
|
|
|
DESCRIPTION
|
|
Return early with an error if a condition is not satisfied.
|
|
|
|
This macro is equivalent to `if !$cond { return Err(From::from($err)); }`.
|
|
|
|
Analogously to `assert!`, `ensure!` takes a condition and exits the function if the condition
|
|
fails. Unlike `assert!`, `ensure!` returns an `Error` rather than panicking.
|
|
|
|
# Example
|
|
|
|
ensure!(user == 0, "only user 0 is allowed");
|
|
#[derive(Error, Debug)]
|
|
enum ScienceError {
|
|
#[error("recursion limit exceeded")]
|
|
RecursionLimitExceeded,
|
|
...
|
|
}
|
|
ensure!(depth <= MAX_DEPTH, ScienceError::RecursionLimitExceeded);
|
|
|
|
|