Trait — define shared behavior.
Definition:
1trait Summary {2 fn summarize(&self) -> String;34 // Default implementation5 fn preview(&self) -> String {6 format!("{}...", &self.summarize()[..50])7 }8}
Implementation:
1struct Article {2 title: String,3 content: String,4}56impl Summary for Article {7 fn summarize(&self) -> String {8 format!("{}: {}", self.title, self.content)9 }10}
Trait bounds:
1fn notify(item: &impl Summary) {2 println!("Breaking: {}", item.summarize());3}45// Equivalent6fn notify<T: Summary>(item: &T) {7 println!("Breaking: {}", item.summarize());8}
Key: Traits for shared behavior, bounds for constraints.