Turul limbajului Rust Cuprins

Polimorfismul prin trăsături

Rust suportă polimorfismul prin trăsături (în engleză traits). Trăsăturile ne permit asocierea unui set de metode cu o structura.

Prima dată definim semnăturile metodelor unei trăsături în:

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

Când o structură implementează o trăsătură, este stabilit un contract ce permite interacțiunea noastră indirectă cu structura, prin tipul trăsăturii (exemplu: &dyn TrasaturaMea ), fără a fi nevoie să cunoaștem tipul real al structurii.

Metodele trăsăturii implementate de structură sunt definite în cadrul unui bloc de implementare:

impl TrasaturaMea for StructuraMea {
    fn foo(&self) {
        ...
    }
    ...
}