Tips

The rounding behaviour of integer division is counter-intuitive. Let's look at two examples that'll make you think.
Use std::path::PathBuf instead of String as the type to provide to an Args struct for clap.
Sometimes, you want to add checks to ensure that your constants are protected from typos or other logic errors. Here is how to implement compile-time assertions in Rust.
Minimal command-line argument parsing in Rust without dependencies.
Learn two methods for dynamically creating a 2D matrix, one using functional programming and the other imperative.
The general strategy is to convert the integer to a type that's unaware of time zones, such as chrono::NaiveDateTime, then convert that time to one that's timezone-aware, such as chrono::Utc.