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...