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?
One option is to use: https://docs.rs/pretty-trait/latest/pretty_trait/
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 theDebug
formatting (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",
],
}
Playground
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With