use std::{env, sync::OnceLock}; use dotenvy::dotenv; static CONFIG: OnceLock = OnceLock::new(); pub struct Config { pub zauth_url: String, pub db_uri: String, } impl Config { pub fn initialize() { assert!(CONFIG.get().is_none()); Config::get(); } pub fn get() -> &'static Config { CONFIG.get_or_init(|| { dotenv().ok(); Config { db_uri: env::var("DATABASE_URL").expect("DATABASE_URL must be set"), zauth_url: env::var("ZAUTH_URL").expect("ZAUTH_URL must be set"), } }) } }