Premier trait en Rust
1. Création d’une caisse et d’un exécutable client
On commence par créer un projet dédié à notre exemple. Il s’agira de créer un trait relatif aux animaux.
On crée donc une librairie (une bibliothèque) Rust, qui n’est ni plus ni moins qu’une caisse (crate), dédiée à ce trait :
cargo new animal --lib
Created library `Animal` package
On a utilisé l’option --lib, qui nous permet de créer une librairie (contrairement aux projets précédents qui étaient des exécutables).
Regardons le code par défaut dans le fichier lib.rs :
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
let result = 2 + 2;
assert_eq!(result, 4);
}
}
On voit qu’il y a dans ce code un module tests qui contient une fonction it_works.
La clause #[cfg(test)] ainsi que le #[test] indiquent que ce code est utilisable via la commande cargo test.
Nous allons nettoyer un peu tout cela de manière à pouvoir l’utiliser depuis l’extérieur de la caisse. On retire les lignes relatives au test et on remplace cette ligne :
assert_eq!(result, 4);
par celle-ci :
assert_eq!(result, 3);
Ainsi, quand on appellera la fonction, on obtiendra un message...