1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
//! Configuration loader
use super::Config;
use crate::FrameworkError;
use std::path::PathBuf;
/// Command type with which a configuration file is associated
pub trait Configurable<Cfg: Config> {
/// Path to the command's configuration file. Returns an error by default.
fn config_path(&self) -> Option<PathBuf> {
None
}
/// Process the configuration after it has been loaded, potentially
/// modifying it or returning an error if options are incompatible
fn process_config(&self, config: Cfg) -> Result<Cfg, FrameworkError> {
Ok(config)
}
}