/// A release type to automatically increment
#[derive(serde::Serialize, serde::Deserialize, Debug, Default, Clone)]
pub enum VersionBumpEnum {
    #[default]
    #[serde(rename = "major")]
    Major,
    #[serde(rename = "minor")]
    Minor,
    #[serde(rename = "patch")]
    Patch,
    #[serde(rename = "rc")]
    Rc,
    #[serde(rename = "rc-major")]
    RcMajor,
    #[serde(rename = "rc-minor")]
    RcMinor,
    #[serde(rename = "rc-patch")]
    RcPatch,
}
impl std::fmt::Display for VersionBumpEnum {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let str_val = match self {
            VersionBumpEnum::Major => "major",
            VersionBumpEnum::Minor => "minor",
            VersionBumpEnum::Patch => "patch",
            VersionBumpEnum::Rc => "rc",
            VersionBumpEnum::RcMajor => "rc-major",
            VersionBumpEnum::RcMinor => "rc-minor",
            VersionBumpEnum::RcPatch => "rc-patch",
        };
        write!(f, "{}", str_val)
    }
}
