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.