1#[macro_export]
2macro_rules! assert_msg {
3 ($envelope:expr, $pat:pat) => {{
4 let envelope = &$envelope;
5 let message = envelope.message();
6
7 #[allow(unreachable_patterns)]
9 match &message.downcast_ref() {
10 Some($pat) => {}
11 _ => panic!(
12 "\na message doesn't match a pattern\npattern: {}\nmessage: {message:#?}\n",
13 stringify!($pat),
14 ),
15 }
16 }};
17}
18
19#[macro_export]
20macro_rules! assert_msg_eq {
21 ($envelope:expr, $expected:expr) => {{
22 let envelope = &$envelope;
23
24 let Some(actual) = envelope.message().downcast_ref() else {
25 panic!("unexpected message: {:#?}", envelope.message());
26 };
27 let expected = &$expected;
28
29 fn unify<T>(_rhs: &T, _lhs: &T) {}
30 unify(actual, expected);
31
32 assert_eq!(actual, expected);
33 }};
34}
35
36macro_rules! cfg_network {
37 ({$($item:item)*}) => {
39 $(
40 #[cfg(feature = "network")]
41 $item
42 )*
43 }
44}