use clap::ValueEnum;
#[derive(Clone, Debug, ValueEnum)]
pub enum ReleaseKind {
Patch,
Minor,
Major,
}
impl std::str::FromStr for ReleaseKind {
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
let t = s.trim();
if t.eq_ignore_ascii_case("patch") || t == "p" || t == "P" {
return Ok(ReleaseKind::Patch);
}
if t.eq_ignore_ascii_case("minor") || t == "m" {
return Ok(ReleaseKind::Minor);
}
if t.eq_ignore_ascii_case("major") || t == "M" {
return Ok(ReleaseKind::Major);
}
Err("invalid bump kind".into())
}
}