9832c22b4d
This patch adds unit tests for the new Rust 1.47.0 release. Except for the new Notable Traits section, we’re already parsing the output correctly.
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);
|
|
|
|
|