Um tour por Rust Índice

Polimorfismo com traits

O Rust suporta o polimorfismo com traits. As traits nos permitem associar um conjunto de métodos a um tipo struct.

Primeiro definimos as assinaturas dos métodos de uma trait internamente:

trait MinhaTrait {
    fn foo(&self);
    ...
}

Quando uma estrutura implementa uma trait, ela estabelece um contrato que nos permite interagir indiretamente com a struct por meio do tipo da trait (por exemplo, &dyn MinhaTrait) sem precisar conhecer o tipo real.

Os métodos da trait implementados na struct são definidos dentro de um bloco de implementação:

impl MinhaTrait for MinhaStruct { 
    fn foo(&self) {
        ...
    }
    ... 
}