use crate::config::get_app_config_path; use crate::provider::ProviderManager; use std::sync::Mutex; /// 全局应用状态 pub struct AppState { pub provider_manager: Mutex, } impl AppState { /// 创建新的应用状态 pub fn new() -> Self { let config_path = get_app_config_path(); let provider_manager = ProviderManager::load_from_file(&config_path).unwrap_or_else(|e| { log::warn!("加载配置失败: {}, 使用默认配置", e); ProviderManager::default() }); Self { provider_manager: Mutex::new(provider_manager), } } /// 保存配置到文件 pub fn save(&self) -> Result<(), String> { let config_path = get_app_config_path(); let manager = self .provider_manager .lock() .map_err(|e| format!("获取锁失败: {}", e))?; manager.save_to_file(&config_path) } // 保留按需扩展:若未来需要热加载,可在此实现 }