aboutsummaryrefslogtreecommitdiff
path: root/src/config.rs
blob: 14a4c1902a2f3114e3cc819d7a8032d6427f0535 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use anyhow::{Context, Result};
use serde::Deserialize;
use std::{fs, path::Path};

#[derive(Debug, Deserialize)]
pub struct Config {
    pub database_url: String,
    pub discord_token: String,
}

impl Config {
    pub fn read_from_file(path: &Path) -> Result<Config> {
        let config_str = fs::read_to_string(path)
            .with_context(|| format!("failed to read {}", path.display()))?;
        toml::from_str(&config_str).with_context(|| format!("failed to parse {}", path.display()))
    }
}