1#[macro_export]
2macro_rules! expr_print {
3 ($e:expr) => {
4 {
5 print!("{}", $e);
6 }
7 };
8
9 ($e:expr, $($es:expr),+) => {{
10 expr_print! { $e }
11 expr_print! { $($es),+ }
12 }};
13}
14
15#[macro_export]
16macro_rules! expr_print_delim {
17 ($delim:expr, $e:expr, $($es:expr),+) => {{
18 expr_print! { $e }
19 expr_print! { $($delim, $es),+ }
20 }};
21}
22
23#[macro_export]
24macro_rules! expr_println {
25 ($e:expr) => {
26 {
27 println!("{}", $e);
28 }
29 };
30
31 ($e:expr, $($es:expr),+) => {{
32 expr_print! { $e }
33 expr_print! { $($es),+ }
34 println!()
35 }};
36}
37
38#[macro_export]
39macro_rules! expr_println_delim {
40 ($delim:expr, $e:expr, $($es:expr),+) => {{
41 expr_print! { $e }
42 expr_print! { $($delim, $es),+ }
43 println!()
44 }};
45}
46
47#[macro_export]
48macro_rules! label_print {
49 ($e:expr) => {
50 {
51 print!("{}: {}", String::from(stringify!($e)), $e);
52 }
53 };
54
55 ($e:expr, $($es:expr),+) => {{
56 label_print! { $e }
57 label_print! { $($es),+ }
58 }};
59}
60
61#[macro_export]
62macro_rules! label_print_delim {
63 ($delim:expr, $e:expr, $($es:expr),+) => {{
64 label_print! { $e }
65 $(
66 print!($delim);
67 label_print! { $es }
68 )*
69 }};
70}
71
72#[macro_export]
73macro_rules! label_println {
74 ($e:expr) => {
75 {
76 println!("{}", $e);
77 }
78 };
79
80 ($e:expr, $($es:expr),+) => {{
81 label_print! { $e }
82 label_print! { $($es),+ }
83 println!()
84 }};
85}
86
87#[macro_export]
88macro_rules! label_println_delim {
89 ($delim:expr, $e:expr, $($es:expr),+) => {{
90 label_print! { $e }
91 $(
92 print!($delim);
93 label_print! { $es }
94 )*
95 println!();
96 }};
97}
98