:PROPERTIES:
:ID:       ffa2f02e-e5bc-4973-8f7d-450f80e325bf
:mtime:    20220130105707
:ctime:    20220130105202
:END:
#+title: Cargo

* Répertoire de référence [[https://crates.io/][/crates/]]

* Commandes
** Création d'un projet
#+BEGIN_SRC shell
cargo new <project-name>
#+END_SRC
Cette commande:
 * Créé le répertoire ~<project_name>~,
 * Crée le fichier ~<project_name>/Cargo.toml~,
Le code doit se trouver dans le répertoire ~<project_name>/src~
** Compiler un projet
#+BEGIN_SRC shell
cargo build
#+END_SRC
Compilation du binaire ~target/debug/<project_name>~ (debug est la target par défaut, ~cargo build --release~ pour une
livraison).
** Exécuter un projet
#+BEGIN_SRC shell
cargo run
#+END_SRC
Recompile le projet en cas de changement du ~Cargo.toml~~ ou du code.
** Vérifier que le projet est compilable
#+BEGIN_SRC shell
cargo check
#+END_SRC
Commande plus rapide que ~cargo build~.

* Fichier Cargo.toml
** [[https://doc.rust-lang.org/cargo/reference/manifest.html][Spécification du fichier]] 

* Références
 * [[https://doc.rust-lang.org/book/][The Book]]

