Going further!
Adding a bit of configuration would be nice, don't you think? Adding user authentication would be nice as well. Let's start with the configuration!
Configuration
First, let's create a new file in src/ called config.rs. To make things easier, we'll use the TOML format for our configuration file. Luckily for us, there is a crate for handling TOML files in Rust, called toml. In addition to this one, we'll use serde to handle serialization and deserialization (very useful!).
Ok, let's start by adding the dependencies into our Cargo.toml file:
toml = "0.4" serde = "1.0" serde_derive = "1.0"
Good, now let's write our Config struct:
pub struct Config {
// fields...
}So what should we put in there? The port and address the server should listen on to start, maybe?
pub struct Config {
pub server_port: Option<u16>,
pub server_addr: Option<String>,
}Done. We also talked about handling authentication. Why not adding it as well? We'll need a new struct for users. Let's...