use serde::{Deserialize, Serialize};
use crate::model::changeset::ChangeType;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(rename_all = "lowercase")]
pub enum DependencyBump {
#[default]
Auto,
Match,
Patch,
Minor,
Major,
}
impl DependencyBump {
pub fn to_change_type(self, upstream: ChangeType) -> ChangeType {
match self {
Self::Patch => ChangeType::Patch,
Self::Minor => ChangeType::Minor,
Self::Major => ChangeType::Major,
Self::Match => upstream,
Self::Auto => match upstream {
ChangeType::Major => ChangeType::Major,
ChangeType::Minor | ChangeType::Patch => ChangeType::Patch,
},
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(default, deny_unknown_fields)]
pub struct PrepareConfig {
pub dependency_bump: DependencyBump,
}