hashiverse_lib/tools/
anyhow_asserts.rs1#[macro_export]
4macro_rules! anyhow_assert_eq {
5 ($expected:expr, $actual:expr) => {{
6 let expected_val = &($expected);
7 let actual_val = &($actual);
8 if expected_val != actual_val {
9 let msg = format!("expected={:?} actual={:?}", expected_val, actual_val);
10 let perform_assert_fail = |msg: String| -> anyhow::Result<()> {
11 anyhow::bail!(msg);
12 };
13 perform_assert_fail(msg)?;
14 }
15 }};
16
17 ($expected:expr, $actual:expr,) => {
18 anyhow_assert_eq!($expected, $actual)
19 };
20
21 ($expected:expr, $actual:expr, $($arg:tt)*) => {{
22 let expected_val = &($expected);
23 let actual_val = &($actual);
24 if expected_val != actual_val {
25 let msg = format!("{}: expected={:?} actual={:?}", format_args!($($arg)*), expected_val, actual_val);
26 let perform_assert_fail = |msg: String| -> anyhow::Result<()> {
27 anyhow::bail!(msg);
28 };
29 perform_assert_fail(msg)?;
30 }
31 }};
32}
33
34#[macro_export]
35macro_rules! anyhow_assert {
36 ($cond:expr) => {{
37 if !($cond) {
38 let msg = format!("assertion failed: {}", stringify!($cond));
39 let perform_assert_fail = |msg: String| -> anyhow::Result<()> {
40 anyhow::bail!(msg);
41 };
42 perform_assert_fail(msg)?;
43 }
44 }};
45
46 ($cond:expr,) => {
47 anyhow_assert!($cond)
48 };
49
50 ($cond:expr, $($arg:tt)*) => {{
51 if !($cond) {
52 let msg = format!("{}", format_args!($($arg)*));
53 let perform_assert_fail = |msg: String| -> anyhow::Result<()> {
54 anyhow::bail!(msg);
55 };
56 perform_assert_fail(msg)?;
57 }
58 }};
59}
60
61#[macro_export]
62macro_rules! anyhow_assert_ge {
63 ($lhs:expr, $rhs:expr) => {{
64 let lhs_val = &($lhs);
65 let rhs_val = &($rhs);
66 if lhs_val < rhs_val {
67 let msg = format!("expected {:?} >= {:?}", lhs_val, rhs_val);
68 let perform_assert_fail = |msg: String| -> anyhow::Result<()> {
69 anyhow::bail!(msg);
70 };
71 perform_assert_fail(msg)?;
72 }
73 }};
74
75 ($lhs:expr, $rhs:expr,) => {
76 anyhow_assert_ge!($lhs, $rhs)
77 };
78
79 ($lhs:expr, $rhs:expr, $($arg:tt)*) => {{
80 let lhs_val = &($lhs);
81 let rhs_val = &($rhs);
82 if lhs_val < rhs_val {
83 let msg = format!("{}: expected {:?} >= {:?}", format_args!($($arg)*), lhs_val, rhs_val);
84 let perform_assert_fail = |msg: String| -> anyhow::Result<()> {
85 anyhow::bail!(msg);
86 };
87 perform_assert_fail(msg)?;
88 }
89 }};
90}