Definición
trait
permite definir comportamiento común a las estructuras, similar a las interfaces en otros lenguajes. Representa una capacidad, algo que un tipo de dato, estructura o enum puede hacer.
trait NombreCompleto {
fn nombre_completo(&self) -> String;
}
struct Persona {
nombre: String,
apellido: String,
}
impl NombreCompleto for Persona {
fn nombre_completo(&self) -> String {
format!("{} {}", self.nombre, self.apellido);
}
}
También se puede implementar un trait de la siguiente forma
#[derive(Debug)]
struct Persona {
nombre: String,
apellido: String,
}
Siempre que todos los elementos del struct ya tengan la implementación del trait correspondiente.