- Rust complica coisas simples, por exemplo herança de herança
a questão especifica de herança nos traits ja acho um ponto positivo do rust, afinal não é herança e sim interface (contrato) que entra naquela coisa de "composição sobre herança"
acho melhor a maneira explicita que go e rust lida com isso, tem muitas situações que o rust complica coisas simples, mas se tratando do sistema de tipos acho que foi feito da melhor maneira possivel
sem contar que sim pode usar implementações padrões nos traits
trait Animal {
fn som(&self){
println!("teste som");
}
fn respira(&self);
fn comida(&self){
println!("teste comida");
}
}
struct Mamifero ;
impl Animal for Mamifero {
fn respira(&self) {
println!("Ar");
}
}
fn main(){
let tmp = Mamifero{};
tmp.som();
tmp.respira();
tmp.comida();
}
isso com compila sem erros e gera o resultado esperado
teste som
Ar
teste comida
esse codigo pode ser testado no rust_playground