diff --git a/commentaires.md b/commentaires.md index b65850a6baa31ca832e73f30f1e41362cc06caf4..5aeb7345d7010b571314da1eccad3a0c1607abdb 100644 --- a/commentaires.md +++ b/commentaires.md @@ -27,7 +27,7 @@ fn main() { } </code></pre> -## Commentaires de documentation +## Commentaires de documentation (1/3) - La commande `cargo doc --open`{.sh} génère la documentation en HTML. - Les lignes de la documentation doivent commencer avec `///`{.rust}. @@ -53,3 +53,53 @@ pub fn add_two_mul_three(x: i32) -> i32 { {width=100%} +## Commentaires de documentation (2/3) + +- La documentation peut être utilisée comme test unitaire: `cargo test`{.sh}. +- Les parties entre triples guillemets sont compilées et exécutées comme tests. + + <pre><code data-trim="hljs rust"> +/// Cette fonction ajoute deux, puis multiplie par trois. +/// +/// # Exemple +/// +/// ``` +/// use tests::add_two_mul_three; +/// +/// let five = 5; +/// +/// add_two_mul_three(five); +/// ``` +pub fn add_two_mul_three(x: i32) -> i32 { + (x + 2) * 3 +} + </code></pre> + +- La sortie est de la forme: + + <pre><code data-trim="hljs sh"> +$ cargo test --doc + Finished dev [unoptimized + debuginfo] target(s) in 0.01s + Doc-tests hello_world +running 1 test +test src/lib.rs - add_two_mul_three (line 11) ... ok +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out + </code></pre> + +## Commentaires de documentation (3/3) + +- La documentation du projet en entier se fait avec `//!`{.rust} en début de ligne. + + <pre><code data-trim="hljs rust"> +//! # Hello world\ +//! \ +//! `hello_world` est l'exemple typique de tout\ +//! cours d'algorithmique.\ +\ +\ +/// Cette fonction ajoute deux, puis multiplie par trois. + </code></pre> + +- Le code ci-dessus produit: + + {width=100%} \ No newline at end of file diff --git a/figs/rust_doc_crate.png b/figs/rust_doc_crate.png new file mode 100644 index 0000000000000000000000000000000000000000..ad9e90272057eaec11902acf2915eba1acce54cb Binary files /dev/null and b/figs/rust_doc_crate.png differ