rsip/message/
header_macros.rs1#[macro_export]
2macro_rules! header {
3 ($iter:expr, $header:path, $error:expr) => {
4 $iter
5 .find_map(|header| {
6 if let $header(header) = header {
7 Some(header)
8 } else {
9 None
10 }
11 })
12 .ok_or($error)
13 };
14}
15
16#[macro_export]
17macro_rules! all_headers {
18 ($iter:expr, $header:path) => {
19 $iter
20 .filter_map(|header| {
21 if let $header(header) = header {
22 Some(header)
23 } else {
24 None
25 }
26 })
27 .collect()
28 };
29}
30
31#[macro_export]
32macro_rules! header_opt {
33 ($iter:expr, $header:path) => {
34 $iter.find_map(|header| {
35 if let $header(header) = header {
36 Some(header)
37 } else {
38 None
39 }
40 })
41 };
42}