ExpertiDict

Rust · Avançado · Inglês · Técnico

blanket implementation

/ˈblæŋkɪt ˌɪmplɪmɛnˈteɪʃən/substantivo

Implementação de um trait para todos os tipos que atendem a um bound, como impl<T: Display> Oi for T. Dá o comportamento a muitos tipos de uma vez.

Onde usar

Aparece na biblioteca padrão: ToString vale para todo Display, e Into para todo From. Ao criar uma, você pode impedir que outros tipos implementem o mesmo trait.

Em código

trait Oi { fn oi(&self) -> String; }
impl<T: std::fmt::Display> Oi for T {
  fn oi(&self) -> String {
    format!("oi, {}", self)
  }
}
println!("{}", 42.oi());

Exemplos

ToString is a blanket implementation over Display.

ToString é uma blanket implementation sobre Display.

The blanket impl conflicts with my specific one.

A blanket impl conflita com a minha específica.

Cuidado

Uma blanket impl ampla gera conflito de coerência com impls específicas, porque o Rust não permite duas implementações que se sobreponham.

Sinônimos

implementação genérica ampla

Veja também

Todos os termos de Rust