As with all languages, Rust can use external libraries that, we've established are called crates. But what are they?
If we think about a crate, we think either of something we use to hold lots of other things. Software developers like to keep their code clean and if they know what they're doing, they tend to keep their libraries fairly specialized. These specialisms within a crate are known as modules.
To show how crates are put together, we are going to create one. In this case, it will be a simple math crate.
Before we consider this, let's consider something we all know: a car. We will consider the car a crate, as everything to do with the car is held within it.
To start, let's think about the main parts of the car: the engine, fuel, interior, wheels and movement, and electrics.
There are more but, for now, we will ignore them. Let's represent this as a block diagram to make the relationship...