Challenge 1: Describable With a Default — Possible Solution ==================================================================== trait Describable { fn describe(&self) -> String { String::from("No description available.") } } struct Book { title: String, } impl Describable for Book { fn describe(&self) -> String { format!("A book titled '{}'", self.title) } } struct Widget; impl Describable for Widget {} // empty impl — uses the default fn main() { let book = Book { title: String::from("The Rust Book") }; let widget = Widget; println!("{}", book.describe()); // A book titled 'The Rust Book' println!("{}", widget.describe()); // No description available. } WHY THIS WORKS AS AN ANSWER ------------------------------ The trait's describe method includes a default body returning "No description available." — exactly this chapter's default- implementation pattern — meaning any type can implement Describable with an EMPTY impl block and still have a working describe() method. Book overrides the default with its own implementation using its title field, following this chapter's own Article/Tweet example pattern of providing a genuinely different summary per type. Widget uses `impl Describable for Widget {}` with nothing inside the braces — this is valid syntax specifically because the trait's method already has a default body, so there's nothing Widget is REQUIRED to provide. If describe had no default at all, this same empty impl block would be a compile error demanding an implementation be supplied.