What is the purpose of #[derive(Debug)]?
The #[derive(Debug)] attribute in Rust automatically generates an implementation of the Debug trait for a struct or enum. This trait allows you to format the value using the {:?} formatter, which is useful for debugging purposes.
#[derive(Debug)] struct Person { name: String, age: u32, } fn main() { let person = Person { name: String::from("Alice"), age: 30, }; // Print the person struct using the Debug trait println!("{:?}", person); }
The Person struct derives the Debug trait, allowing us to print its value using println!("{:?}", person);. The output will be:
Person { name: "Alice", age: 30 }
This makes it easier to inspect the values of complex data structures during development and debugging.