First, let's create a new file in src/ called 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. ...

Get Rust Programming By Example now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.