1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#[macro_export]
macro_rules! show {
    ($expression: expr) => {
        println!("{:?}", $expression);
    };
    ($expression: expr, $($next: expr),+) => {{
        print!("{:?} ", $expression);
        show!($($next),+)
    }};
    // Ignore a trailing comma:
    ($($expression: expr),+,) => {
        show!($($expression),+)
    };
}

#[test]
fn it_works() {
    show!("foo",);
    show!(Some(42i32));
    show!(4u8, 'x', ("a", "b"));
    //panic!()  // Uncomment to see test output.
}