config.rs (748B)
1 use std::fs::File; 2 use std::io::BufReader; 3 4 use serde::{Deserialize, Serialize}; 5 6 #[derive(Debug, PartialEq, Serialize, Deserialize)] 7 pub struct Config { 8 pub message: String, 9 pub target_user: String, 10 pub servers: Vec<Homeserver>, 11 pub debug: bool, 12 } 13 14 #[derive(Debug, PartialEq, Serialize, Deserialize)] 15 pub struct Homeserver { 16 pub address: String, 17 pub mxid: String, 18 pub access_token: Option<String>, 19 pub password: Option<String>, 20 } 21 22 pub fn load_config(config_file: String) -> Result<Config, serde_yaml::Error> { 23 let f = File::open(config_file).expect("Unable to open config file"); 24 let br = BufReader::new(f); 25 26 let deserialized_config: Config = serde_yaml::from_reader(br)?; 27 Ok(deserialized_config) 28 }