mod local_file; mod ssh; use async_trait::async_trait; pub use local_file::*; pub use ssh::*; use crate::Error; #[async_trait] pub trait ConfigManager: std::fmt::Debug + Send + Sync { async fn load_as_str(&self) -> Result; /// Save a new version of the config file, making sure that the hash still represents the file /// currently stored in /conf/config.xml async fn save_config(&self, content: &str, hash: &str) -> Result<(), Error>; async fn apply_new_config(&self, content: &str, hash: &str) -> Result<(), Error>; }