Przewodnik po Języku Rust Spis Treści

Polimorfizm Przy Pomocy Cech

Rust wspiera polimorfizm przy pomocy cech (ang. traits). Cechy pozwalają nam powiązać zestaw metod z typem struktury.

Najpierw definiujemy sygnatury metod danej cechy:

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

Kiedy struktura implementuje cechę, ustanawia to kontrakt, który pozwala nam pośrednio wchodzić w interakcję ze strukturą poprzez typ cechy (np. &dyn MyTrait), bez konieczności znajomości jej rzeczywistego typu.

Zaimplementowane przez strukturę metody cechy są zdefiniowane wewnątrz bloku implementacji:

impl MyTrait for MyStruct {
    fn foo(&self) {
        ...
    }
    ...
}