Traits Derivados

As macros derive do Rust funcionam gerando automaticamente o cĂłdigo que implementa os traits especificados para uma estrutura de dados.

VocĂȘ pode deixar o compilador derivar uma sĂ©rie de traits tais como:

#[derive(Debug, Clone, PartialEq, Eq, Default)]
struct Player {
    name: String,
    strength: u8,
    hit_points: u8,
}

fn main() {
    let p1 = Player::default();
    let p2 = p1.clone();
    println!("{:?} Ă©\nigual a {:?}?\nA resposta Ă© {}!", &p1, &p2,
             if p1 == p2 { "sim" } else { "nĂŁo" });
}