use super::UserConfig;
use super::sections::{
CommitConfig, CommitGenerationConfig, ListConfig, MergeConfig, StepConfig, SwitchConfig,
SwitchPickerConfig,
};
#[derive(Debug, Clone, PartialEq)]
pub struct ResolvedConfig {
pub list: ListConfig,
pub merge: MergeConfig,
pub commit: CommitConfig,
pub commit_generation: CommitGenerationConfig,
pub switch_picker: SwitchPickerConfig,
pub switch: SwitchConfig,
pub step: StepConfig,
}
impl ResolvedConfig {
pub fn for_project(config: &UserConfig, project: Option<&str>) -> Self {
Self {
list: config.list(project).unwrap_or_default(),
merge: config.merge(project).unwrap_or_default(),
commit: config.commit(project).unwrap_or_default(),
commit_generation: config.commit_generation(project),
switch_picker: config.switch_picker(project),
switch: config.switch(project).unwrap_or_default(),
step: config.step(project).unwrap_or_default(),
}
}
}