Виведення
Підтримувані трейти можуть бути автоматично застосовані до ваших кастомних типів наступним чином:
#[derive(Debug, Clone, Default)] struct Player { name: String, strength: u8, hit_points: u8, } fn main() { let p1 = Player::default(); // Трейт Default додає `default` конструктор . let mut p2 = p1.clone(); // Трейт Clone додає `clone` метод. p2.name = String::from("EldurScrollz"); // Трейт Debug додає підтримку друку з `{:?}`. println!("{p1:?} проти {p2:?}"); }
This slide should take about 3 minutes. 
                    Виведення реалізовано за допомогою макросів, і багато крейтів надають корисні макроси виведення для додавання корисної функціональності. Наприклад, serde може виводити підтримку серіалізації для структури за допомогою #[derive(Serialize)].