use serde::{Deserialize, Serialize}; use std::path::Path; use anyhow::Result; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct Config { pub church_name: String, #[serde(skip_serializing_if = "Option::is_none")] pub contact_phone: Option, #[serde(skip_serializing_if = "Option::is_none")] pub contact_website: Option, #[serde(skip_serializing_if = "Option::is_none")] pub contact_youtube: Option, #[serde(skip_serializing_if = "Option::is_none")] pub contact_address: Option, } impl Config { pub fn from_file>(path: P) -> Result { let content = std::fs::read_to_string(path)?; let config: Config = toml::from_str(&content)?; Ok(config) } }