ExpertiDict

Rust · Intermediário · Inglês · Técnico

supertrait

/ˈsuːpɚtreɪt/substantivo

Trait que exige outro como requisito, declarado como trait A: B. Quem implementa A precisa implementar B, e os métodos de B ficam disponíveis a partir de A.

Onde usar

Aparece em traits como Error, que exige Debug e Display, e em designs onde um comportamento depende de outro.

Em código

trait Nomeado {
  fn nome(&self) -> String;
}
trait Saudacao: Nomeado {
  fn oi(&self) -> String {
    format!("oi, {}", self.nome())
  }
}

Exemplos

Make Named a supertrait of Greeter.

Faça de Named um supertrait de Greeter.

Error has Debug and Display as supertraits.

O Error tem Debug e Display como supertraits.

Cuidado

Não é herança de implementação: o supertrait só impõe um requisito, e cada tipo implementa os dois separadamente.

Veja também

Todos os termos de Rust