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}