dsalgo/debug_macro.rs
1/// reference
2/// https://users.rust-lang.org/t/show-value-only-in-debug-mode/43686/3
3#[macro_export]
4
5// #[allow(unused_macros)]
6macro_rules! dbg {
7 ($($x:tt)*) => {
8 {
9 // default in debug mode
10 #[cfg(debug_assertions)]
11 {
12 std::dbg!($($x)*)
13 }
14
15 // default in release mode
16 #[cfg(not(debug_assertions))]
17 {
18 ($($x)*)
19 }
20 }
21 }
22}
23
24#[cfg(test)]
25
26mod tests {
27
28 #[test]
29
30 fn test_dbg() {
31 let a = 1;
32
33 dbg!(dbg!(a) + 1);
34 }
35}