Les traits sont des ensembles de méthodes que les types sur lesquels ils sont appliqués doivent implémenter.
Les traits sont des ensembles de méthodes que les types sur lesquels ils sont appliqués
doivent implémenter.
Par exemple, pour utiliser \texttt{println!}, il faut que le type implémente l'ensemble des méthodes du trait \texttt{fmt::Display} pour pouvoir afficher.
Ils permettent de grouper des objets qui implémentent une fonctionnalité commune,
et certains donnent accès à des fonctionalités spéciales.
Le trait \texttt{fmt::Display} ne contient qu'une seule méthode : \texttt{fmt}.
Par exemple, pour utiliser \texttt{println!}, il faut que le type implémente
l'ensemble des méthodes du trait \texttt{std::fmt::Display} pour pouvoir afficher.
Le trait \texttt{Display} ne contient qu'une seule méthode : \texttt{fmt}.
\begin{lstlisting}[style=Rust, language=Rust]
use std::fmt; // Permet d'écrire fmt::xxx au lieu de std::fmt::xxx
use std::fmt;
struct User {
id: i32,
...
...
@@ -795,51 +800,81 @@ impl fmt::Display for User {