use crate::config_edit::branch::edit::EditOrigin;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ConfigFile {
Brazen { workspace: String },
LitanyModels,
LitanyWorkflow { name: String },
Cadence,
Branch {
workspace: String,
lineage: String,
origin: EditOrigin,
path: String,
},
}
impl ConfigFile {
pub(crate) fn workspace_slot(&mut self) -> Option<&mut String> {
match self {
ConfigFile::Brazen { workspace } | ConfigFile::Branch { workspace, .. } => {
Some(workspace)
}
ConfigFile::LitanyModels | ConfigFile::LitanyWorkflow { .. } | ConfigFile::Cadence => {
None
}
}
}
pub(crate) fn file_name(&self) -> String {
match self {
ConfigFile::Brazen { .. } => "config.toml".to_owned(),
ConfigFile::LitanyModels => crate::model_pick::grammar::MODELS_YAML.to_owned(),
ConfigFile::LitanyWorkflow { name } => format!("{name}.yaml"),
ConfigFile::Cadence => crate::app::cadence::CADENCE_YAML.to_owned(),
ConfigFile::Branch { path, .. } => {
path.rsplit('/').next().unwrap_or_default().to_owned()
}
}
}
}