rlyx 0.3.1

rlyx is a fast release manager that automatically bumps versions, creates changelogs, tags commits, and publishes GitHub releases across JS, Rust, and Python projects with first class monorepos support.
Documentation
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())
    }
}