1#[macro_export]
2macro_rules! assert_msg {
3 ($envelope:expr, $pat:pat) => {{
4 use $crate::_priv::{AnyMessageBorrowed, EnvelopeBorrowed};
5
6 let envelope = &$envelope;
7 let msg = envelope.unpack_regular().downcast2();
8
9 #[allow(unreachable_patterns)]
10 match &msg {
11 &$pat => {}
12 _ => panic!(
13 "\na message doesn't match a pattern\npattern: {}\nmessage: {:#?}\n",
14 stringify!($pat),
15 msg,
16 ),
17 }
18 }};
19}
20
21#[macro_export]
22macro_rules! assert_msg_eq {
23 ($envelope:expr, $expected:expr) => {{
24 use $crate::_priv::{AnyMessageBorrowed, EnvelopeBorrowed};
25
26 let envelope = &$envelope;
27
28 let actual = envelope.unpack_regular().downcast2();
29 let expected = &$expected;
30
31 fn unify<T>(_rhs: &T, _lhs: &T) {}
32 unify(actual, expected);
33
34 assert_eq!(actual, expected);
35 }};
36}