Option, Result, traits

Dans cette partie, nous allons construire un premier programme que nous serons amenés à étendre par la suite. Ce programme prendra en entrée un certain nombre de comptes (des couples login password) et fera dessus un certain nombre de vérifications : mots de passe dupliqués, mots de passe déjà retrouvés dans des failles de sécurité, etc.

  1. Nous allons commencer par demander à cargo la création d'un nouveau projet pwdchk de type bin. Créez le avec la commande suivante :
$ cargo new --bin pwdchk

Le --bin n'est pas obligatoire car c'est le mode par défaut, par opposition à --lib qui crée une bibliothèque. La hiérarchie ainsi créée contient :

pwdchk/
├─Cargo.toml
└─src/
  └─main.rs

Le contenu du fichier Cargo.toml indique le nom du crate, sa version et l'édition du langage à utiliser :

[package]
name = "pwdchk"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

src/main.rs contient le programme principal :

fn main() {
    println!("Hello, world!");
}

Après être entré dans le répertoire pwdchk, on peut construire l'exécutable et le lancer :

$ cargo build
$ target/debug/pwdchk
Hello, world!

ou utiliser cargo run pour le construire et le lancer en même temps :

$ cargo run
Hello, world!

L'option --release de cargo build et cargo run permet d'utiliser le profil release plutôt que le profil debug. Le code généré est optimisé, certaines vérifications ne se font plus et le temps de compilation est allongé :

$ cargo build --release
$ target/release/pwdchk
Hello, world!
$ cargo run --release
Hello, world!