Rust · Avançado · Inglês · Técnico
blanket implementation
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