Dans cette partie nous discutons de [ce code](#le-code).
## Concepts
Les concepts abordés dans cet exemple sont:
1.[La documentation.](#la-documentation)
2.[Les tests.](#les-tests)
3.[Les tests de documentation.](#les-tests-de-documentation)
4.[Les outils en plus du compilateur](#les-outils-en-plus-du-compilateur)
## Discussion
Le Rust étant un langage moderne, il vient avec tout un tas de features qui sont très appréciables pour écrire du code robuste, propre et réutilisable. On va voir quelle est la syntaxe nécessaire pour écrire documentation et tests.
### La documentation
Il y a différents moyens de documenter un code. Pour un guide bien plus complet que ce qui est résumé ici, vous pouvez vous référer à [ce site](https://doc.rust-lang.org/rustdoc/how-to-write-documentation.html).
#### Les commentaires
Le plus simple est d'y ajouter des commentaires. En Rust, tous caractères qui suivent des `//` sur la même ligne sont considérés comme un commentaire (ignorés par le compilateur)
```rust,no_run
// Ceci est un commentaire
// Et ceci un autre
leta=2;// Ici on assigne 2 à a
```
On peut écrire également des commentaires sur plusieurs lignes sans avoir à mettre des `//` sur chacune. Pour ce faire on utilise la syntaxe `/* ... */`
```rust,no_run
/*
Ceci est un commentaire
Et ceci un autre
Et en voici un dernier
*/
leta=2;/* Ici on assigne 2 à a */
```
Ce type de documentation se prête très bien à des commentaires sur les détails du code, mais n'est pas très adapté à écrire une documentation plus générale sur le comportement du code. Ainsi, on a autre type de commentaires, qui seront utilisés pour générer automatiquement de la documentation à l'aide de l'outil `rustdoc`.
#### La documentation par composants
La documentation d'un composant, que ça soit une `struct`, un `enum`, une fonction, etc. se fait en préfixant `///` devant la ligne de documentation et la plaçant
directement au dessus du composant à commenter. Ainsi les exemples suivants permettent de: