Modules
We have seen how impl blocks let us namespace functions to a type.
Similarly, mod lets us namespace types and functions:
1. ```
mod foo {
```
2. ```
pub fn do_something() {
```
3. ```
println!("In the foo module");
```
4. ```
}
```
5. ```
}
```
7. ```
mod bar {
```
8. ```
pub fn do_something() {
```
9. ```
println!("In the bar module");
```
10. ```
}
```
11. ```
}
```
13. ```
fn main() {
```
14. ```
foo::do_something();
```
15. ```
bar::do_something();
```
16. ```
}
```
This slide should take about 3 minutes.
- Packages provide functionality and include a
Cargo.tomlfile that describes how to build a bundle of 1+ crates. - Crates are a tree of modules, where a binary crate creates an executable and a library crate compiles to a library.
- Modules define organization, scope, and are the focus of this section.
