use crate::config::manager::ConfigManager; use crate::error::Error; use async_trait::async_trait; use std::fs; #[derive(Debug)] pub struct LocalFileConfigManager { file_path: String, } impl LocalFileConfigManager { pub fn new(file_path: String) -> Self { Self { file_path } } } #[async_trait] impl ConfigManager for LocalFileConfigManager { async fn load_as_str(&self) -> Result { Ok(fs::read_to_string(&self.file_path)?) } async fn apply_new_config(&self, content: &str) -> Result<(), Error> { Ok(fs::write(&self.file_path, content)?) } }