ExpertiDict

Rust · Essencial · Inglês · Técnico

derive

/dɪˈraɪv/substantivo / verbo

Atributo que gera automaticamente a implementação de traits comuns, como Debug, Clone e PartialEq, a partir da definição da struct ou do enum.

Onde usar

Aparece logo acima de quase toda struct, como #[derive(Debug, Clone)]. Em review, só se deriva o que faz sentido, pois Copy ou Eq criam compromissos de API.

Em código

#[derive(Debug, Clone, PartialEq)]
struct P { x: i32 }
let a = P { x: 1 };
let b = a.clone();
println!("{:?} {}", a, a == b);

Exemplos

Just derive Debug on it.

É só derivar Debug nele.

The derive fails because one field isn't Clone.

O derive falha porque um campo não é Clone.

Cuidado

Derive exige que todos os campos também implementem o trait; um campo sem Debug quebra o derive de Debug.

Sinônimos

derivação

Origem

Do latim derivare, 'desviar um curso de água'.

Veja também

Todos os termos de Rust