1#[macro_export]
29macro_rules! WARNING {
30 ($($msg:expr),+) => {{ TRACE!(type => "WARNING", $($msg),+); }};
31}
32
33#[macro_export]
37macro_rules! ERROR {
38 ($($msg:expr),+) => {{ TRACE!(type => "ERROR", $($msg),+); }};
39}
40
41#[macro_export]
45macro_rules! INFO {
46 ($($msg:expr),+) => {{ TRACE!(type => "INFO", $($msg),+); }};
47}
48
49#[macro_export]
53macro_rules! DEBUG {
54 ($($msg:expr),+) => {{ TRACE!(type => "DEBUG", $($msg),+); }};
55}
56
57#[macro_export]
63macro_rules! ENTER {
64 () => {{ TRACE!(type => "ENTER"); }};
65 ($($msg:expr),+) => {{ TRACE!(type => "ENTER", $(format!("{}={}", stringify!($msg), $msg)),+); }};
66}
67
68#[macro_export]
82macro_rules! TRACE {
83 (type=>$tp:expr, sep=>$sep:expr, $msg:expr) => {{ println!("{}:{} - {}: {}", file!(), line!(), $tp, $msg); }};
84 (type=>$tp:expr, sep=>$sep:expr, $($arg:expr),+) => {{ println!("{}:{} - {}: {}", file!(), line!(), $tp, [$(format!("{}", $arg),)+].connect($sep)); }};
85 (type=>$tp:expr, $msg:expr) => {{ println!("{}:{} - {}: {}", file!(), line!(), $tp, $msg); }};
86 (type=>$tp:expr, $($arg:expr),+) => {{ println!("{}:{} - {}: {}", file!(), line!(), $tp, [$(format!("{}", $arg),)+].connect(" ")); }};
87 (type=>$tp:expr) => {{ println!("{}:{} - {}", file!(), line!(), $tp); }};
88 (sep=>$sep:expr, $($arg:expr),+) => {{ println!("{}:{} - {}", file!(), line!(), [$(format!("{}", $arg),)+].connect($sep)); }};
89 ($msg:expr) => {{ println!("{}:{} - {}", file!(), line!(), $msg); }};
90 ($($arg:expr),+) => {{ println!("{}:{} - {}", file!(), line!(), [$(format!("{}", $arg),)+].connect(" ")); }};
91 () => {{ println!("{}:{}", file!(), line!()); }};
92}
93
94#[macro_export]
108macro_rules! DEBUG_TRACE {
109 (type=>$tp:expr, sep=>$sep:expr, $msg:expr) => {{ println!("{}:{} - {}: {:?}", file!(), line!(), $tp, $msg); }};
110 (type=>$tp:expr, sep=>$sep:expr, $($arg:expr),+) => {{ println!("{}:{} - {}: {}", file!(), line!(), $tp, [$(format!("{:?}", $arg),)+].connect($sep)); }};
111 (type=>$tp:expr, $msg:expr) => {{ println!("{}:{} - {}: {:?}", file!(), line!(), $tp, $msg); }};
112 (type=>$tp:expr, $($arg:expr),+) => {{ println!("{}:{} - {}: {}", file!(), line!(), $tp, [$(format!("{:?}", $arg),)+].connect(" ")); }};
113 (type=>$tp:expr) => {{ println!("{}:{} - {}", file!(), line!(), $tp); }};
114 (sep=>$sep:expr, $($arg:expr),+) => {{ println!("{}:{} - {}", file!(), line!(), [$(format!("{:?}", $arg),)+].connect($sep)); }};
115 ($msg:expr) => {{ println!("{}:{} - {:?}", file!(), line!(), $msg); }};
116 ($($arg:expr),+) => {{ println!("{}:{} - {}", file!(), line!(), [$(format!("{:?}", $arg),)+].connect(" ")); }};
117 () => {{ println!("{}:{}", file!(), line!()); }};
118}
119
120#[macro_export]
127macro_rules! traceln {
128 (type=>$tp:expr, $($arg:tt)+) => {{ traceln!("{}: {}", $tp, format_args!($($arg)+)); }};
129 (type=>$tp:expr) => {{ traceln!("{}", $tp); }};
130 ($($arg:tt)+) => {{ println!("{}", format_args!("{}:{} - {}", file!(), line!(), format_args!($($arg)+))); }};
131}
132
133#[macro_export]
140macro_rules! th_trace {
141 (type=>$tp:expr, $($arg:tt)+) => {{ th_trace!("{}: {}", $tp, format_args!($($arg)+)); }};
142 (type=>$tp:expr) => {{ th_trace!("{}", $tp); }};
143 ($($arg:tt)+) => {{ println!("{}", format_args!("[{}] {}:{} - {}", std::thread::current().name().unwrap_or("none"), file!(), line!(), format_args!($($arg)+))); }};
144}
145
146#[macro_export]
150macro_rules! warning {
151 ($($msg:tt)+) => {{ traceln!(type=>"WARNING", $($msg)+); }};
152}
153
154#[macro_export]
158macro_rules! error {
159 ($($msg:tt)+) => {{ traceln!(type=>"ERROR", $($msg)+); }};
160}
161
162#[macro_export]
166macro_rules! info {
167 ($($msg:tt)+) => {{ traceln!(type=>"INFO", $($msg)+); }};
168}
169
170#[macro_export]
174macro_rules! debug {
175 ($($msg:tt)+) => {{ traceln!(type=>"DEBUG", $($msg)+); }};
176}
177
178#[macro_export]
184macro_rules! enter {
185 () => {{ traceln!(type=>"ENTER"); }};
186 ($($msg:expr),+) => {{ traceln!(type=>"ENTER", "{}", [$(format!("{}={}", stringify!($msg), $msg)),+].connect(" ")); }};
187}
188
189#[macro_export]
195macro_rules! strace {
196 (type=>$tp:expr, $msg:expr) => {{ println!("{}:{} - {}: {}", file!(), line!(), $tp, $msg); }};
197 ($msg:expr) => {{ println!("{}:{} - {}", file!(), line!(), $msg); }};
198}
199
200#[macro_export]
214macro_rules! connect_args {
215 (formatter=>$fr:expr, sep=>$sep:expr, $($arg:expr),+) => { [$(format!($fr, $arg),)+].connect($sep) };
216 (sep=>$sep:expr, $($arg:expr),+) => { [$(format!("{}", $arg),)+].connect($sep) };
217 (formatter=>$fr:expr, $($arg:expr),+) => { [$(format!($fr, $arg),)+].connect(" ") };
218 ($msg:expr) => { format!("{}", $msg) };
219 ($($arg:expr),+) => { [$(format!("{}", $arg),)+].connect(" ") };
220}