kusprint/
lib.rs

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