use std::env; #[derive(Clone, Debug)] pub struct Config { pub database_url: String, pub server_host: String, pub server_port: u16, } impl Config { pub fn from_env() -> Result { Ok(Config { database_url: env::var("DATABASE_URL")?, server_host: env::var("SERVER_HOST").unwrap_or_else(|_| "0.0.0.0".to_string()), server_port: env::var("SERVER_PORT") .unwrap_or_else(|_| "3009".to_string()) .parse() .expect("SERVER_PORT must be a valid u16"), }) } pub fn server_address(&self) -> String { format!("{}:{}", self.server_host, self.server_port) } }