Rust - Gestionnaire de packages

Cargo est le gestionnaire de colis de RUST. Cela agit comme un outil et gère les projets Rust.

Certaines commandes de fret couramment utilisées sont répertoriées dans le tableau ci-dessous -

Sr. Non Commande et description
1

cargo build

Compile le projet actuel.

2

cargo check

Analyse le projet actuel et signale les erreurs, mais ne crée pas de fichiers objet.

3

cargo run

Construit et exécute src / main.rs.

4

cargo clean

Supprime le répertoire cible.

5

cargo update

Met à jour les dépendances répertoriées dans Cargo.lock.

6

cargo new

Crée un nouveau projet de fret.

Cargo permet de télécharger des bibliothèques tierces. Par conséquent, il agit comme un gestionnaire de paquets. Vous pouvez également créer vos propres bibliothèques. Cargo est installé par défaut lorsque vous installez Rust.

Pour créer un nouveau projet cargo, nous pouvons utiliser les commandes données ci-dessous.

Créer une caisse binaire

cargo new project_name --bin

Créer une caisse de bibliothèque

cargo new project_name --lib

Pour vérifier la version actuelle de la cargaison, exécutez la commande suivante -

cargo --version

Illustration - Créer un projet Binary Cargo

Le jeu génère un nombre aléatoire et invite l'utilisateur à deviner le nombre.

Étape 1 - Créer un dossier de projet

Ouvrez le terminal et tapez la commande suivante cargo new guess-game-app --bin .

Cela créera la structure de dossiers suivante.

guess-game-app/
   -->Cargo.toml
   -->src/
      main.rs

La nouvelle commande cargo est utilisée pour créer une caisse. L' indicateur --bin indique que la caisse en cours de création est une caisse binaire. Les caisses publiques sont stockées dans un référentiel central appelé crates.iohttps://crates.io/.

Étape 2 - Inclure les références aux bibliothèques externes

Cet exemple doit générer un nombre aléatoire. Étant donné que la bibliothèque standard interne ne fournit pas de logique de génération de nombres aléatoires, nous devons examiner les bibliothèques externes ou les caisses. Laissez-nous utiliserrandcrate disponible sur le site crates.io crates.io

le https://crates.io/crates/randest une bibliothèque de rouille pour la génération de nombres aléatoires. Rand fournit des utilitaires pour générer des nombres aléatoires, pour les convertir en types et distributions utiles, ainsi que des algorithmes liés au hasard.

Le diagramme suivant montre le site Web crate.io et les résultats de la recherche pour rand crate.

Copiez la version de rand crate dans le fichier Cargo.toml rand = "0.5.5" .

[package]
name = "guess-game-app"
version = "0.1.0"
authors = ["Mohtashim"]

[dependencies]
rand = "0.5.5"

Étape 3: compilez le projet

Accédez au dossier du projet. Exécutez la commandecargo build sur la fenêtre du terminal -

Updating registry `https://github.com/rust-lang/crates.io-index`
Downloading rand v0.5.5
Downloading rand_core v0.2.2
Downloading winapi v0.3.6
Downloading rand_core v0.3.0
   Compiling winapi v0.3.6
   Compiling rand_core v0.3.0
   Compiling rand_core v0.2.2
   Compiling rand v0.5.5
   Compiling guess-game-app v0.1.0 
   (file:///E:/RustWorks/RustRepo/Code_Snippets/cargo-projects/guess-game-app)
   Finished dev [unoptimized + debuginfo] target(s) in 1m 07s

La caisse rand et toutes les dépendances transitives (dépendances internes de rand) seront automatiquement téléchargées.

Étape 4 - Comprendre la logique métier

Voyons maintenant comment fonctionne la logique métier pour le jeu de devinettes de nombres -

  • Le jeu génère initialement un nombre aléatoire.

  • Un utilisateur est invité à entrer une entrée et à deviner le nombre.

  • Si le nombre est inférieur au nombre généré, un message «Trop bas» est imprimé.

  • Si le nombre est supérieur au nombre généré, un message «Trop élevé» est imprimé.

  • Si l'utilisateur entre le numéro généré par le programme, le jeu se termine.

Étape 5 - Modifiez le fichier main.rs

Ajoutez la logique métier au fichier main.rs.

use std::io;
extern crate rand; 
//importing external crate
use rand::random;
fn get_guess() -> u8 {
   loop {
      println!("Input guess") ;
      let mut guess = String::new();
      io::stdin().read_line(&mut guess)
         .expect("could not read from stdin");
      match guess.trim().parse::<u8>(){ //remember to trim input to avoid enter spaces
         Ok(v) => return v,
         Err(e) => println!("could not understand input {}",e)
      }
   }
}
fn handle_guess(guess:u8,correct:u8)-> bool {
   if guess < correct {
      println!("Too low");
      false

   } else if guess> correct {
      println!("Too high");
      false
   } else {
      println!("You go it ..");
      true
   }
}
fn main() {
   println!("Welcome to no guessing game");

   let correct:u8 = random();
   println!("correct value is {}",correct);
   loop {
      let guess = get_guess();
      if handle_guess(guess,correct){
         break;
      }
   }
}

Étape 6 - Compilez et exécutez le projet

Exécutez la commande cargo run sur le terminal. Assurez-vous que le terminal pointe vers le répertoire du projet.

Welcome to no guessing game
correct value is 97
Input guess
20
Too low
Input guess
100
Too high
Input guess
97
You got it ..