use super::Deps;
use crate::config_edit::branch::edit::EditOrigin;
use std::path::PathBuf;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ConfigFile {
Brazen { workspace: String },
LernieModels,
LernieWorkflow { name: String },
Cadence,
Branch {
workspace: String,
lineage: String,
origin: EditOrigin,
path: String,
},
}
impl ConfigFile {
pub fn workspace(&self) -> Option<String> {
match self {
ConfigFile::Brazen { workspace } | ConfigFile::Branch { workspace, .. } => {
Some(workspace.clone())
}
ConfigFile::LernieModels | ConfigFile::LernieWorkflow { .. } | ConfigFile::Cadence => {
None
}
}
}
}
pub(super) fn located(deps: &Deps, file: &ConfigFile) -> Result<PathBuf, String> {
match file.workspace() {
Some(name) => deps.snapshot.ws_path(&name),
None => Ok(PathBuf::new()),
}
}