Тур по Rust Зміст

Поліморфізм у Traits

Rust підтримує поліморфізм за допомогою ознак (Traits). Властивості дозволяють нам пов'язати набір методів зі структурним типом.

Спочатку ми визначаємо сигнатури методів, що входять до складу ознаки (Trait):

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

Коли структура реалізує трейт, вона встановлює контракт, який дозволяє нам опосередковано взаємодіяти зі структурою через тип риси (наприклад, &dyn MyTrait) без необхідності знати реальний тип.

Реалізовані методи трейтів структури визначаються в межах реалізації блоку реалізації:

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