Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pretty print struct in Rust

Tags:

rust

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/

like image 442
Vikas Goel Avatar asked Aug 31 '25 16:08

Vikas Goel


1 Answers

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 the Debug 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

like image 191
John Kugelman Avatar answered Sep 03 '25 18:09

John Kugelman