How to print structs and arrays? - how does one pretty print a rust struct or any data type?
Sure, one can write the custom Debug method. But is there some way which enables the print by default?
51 Answer
When you implement Debug, Rust provides "pretty printing" with {:#?}. From the std::fmt documentation:
#- This flag indicates that the “alternate” form of printing should be used. The alternate forms are:
{:#?}- pretty-print theDebugformatting (adds linebreaks and indentation)- [others omitted]
Example:
#[derive(Debug)] struct Person { name: &'static str, age: u8, hobbies: Vec<&'static str>, } fn main() { let peter = Person { name: "Jesse", age: 49, hobbies: vec!["crosswords", "sudoku"], }; println!("{:#?}", peter); } Output:
Person { name: "Jesse", age: 49, hobbies: [ "crosswords", "sudoku", ], } 5