#[macro_use] extern crate runtime_fmt; macro_rules! case { ($($rest:tt)*) => {{ let string = format!($($rest)*); println!("{}", string); assert_eq!( string, rt_format!($($rest)*).unwrap() ) }} } #[test] fn simple_equivalence() { case!("Literal string!"); case!("Hello, {}", "world"); case!("Hello, {}!", "world"); case!("2 + 2 = {}", 2 + 2); case!("{0:?} {0}", "A \\ B"); case!("{} {x}", x="Foo"); case!("{x} {} {}", "Foo", x="Bar"); case!("{x} {x} {}", "Foo", x="Bar"); case!("{x} {} {x}", "Foo", x="Bar"); case!("{} {x} {}", "Foo", x="Bar"); case!("{} {x} {x}", "Foo", x="Bar"); case!("{} {} {x}", "Foo", x="Bar"); case!("{:x}", 0x3feebb77); case!("{:X}", 0x3feebb77); case!("Hex: {:.>4x}", 17); case!("{:p}", "Hello"); case!("{}{}{}", "(A)", "_ _", "(B)"); }