Tour de Rust Table des matières

Polymorphisme avec les traits

Rust rend possible le polymorphisme grâce aux 'traits'. Les traits nous permettent d'associer un ensemble de méthodes à une structure.

Il faut tout d'abord définir la signature des méthodes d'un trait:

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

Quand une structure implémente un trait, le trait établit un contrat entre la structure et les méthodes que la structure doit implémenter. Cela nous permetra d'interagir avec la structure à travers le type du trait (par exemple &dyn MyTrait) sans avoir à connaître le type réel.

Les méthodes du trait implémentées par la structure sont définies dans un bloc d'implémentation:

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