1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-06-27 03:01:03 +02:00
Files
comprehensive-rust/src/std-types/docs.md

46 lines
1.4 KiB
Markdown
Raw Normal View History

---
minutes: 5
---
# Language Docs
Rust comes with extensive documentation of the language and the standard library.
For example:
* All of the details about [loops](https://doc.rust-lang.org/stable/reference/expressions/loop-expr.html).
* Primitive types like [`u8`](https://doc.rust-lang.org/stable/std/primitive.u8.html).
* Standard-library items like [`Option`](https://doc.rust-lang.org/stable/std/option/enum.Option.html) or [`BinaryHeap`](https://doc.rust-lang.org/stable/std/collections/struct.BinaryHeap.html).
In fact, you can document your own code:
```rust,editable
/// Determine whether the first argument is divisible by the second argument.
///
/// If the second argument is zero, the result is false.
fn is_divisible_by(lhs: u32, rhs: u32) -> bool {
if rhs == 0 {
return false;
}
lhs % rhs == 0
}
```
The contents are treated as Markdown. All published Rust library crates are
automatically documented at [`docs.rs`](https://docs.rs) using the
[rustdoc](https://doc.rust-lang.org/rustdoc/what-is-rustdoc.html) tool. It is
idiomatic to document all public items in an API using this pattern.
To document an item from inside the item (such as inside a module), use `//!`
or `/*! .. */`, called "inner doc comments":
```rust,editable
//! This module contains functionality relating to divisibility of integers.
```
<details>
* Show students the generated docs for the `rand` crate at
[`docs.rs/rand`](https://docs.rs/rand).
</details>