Sign in

    semver

    Semantic Versioning (SemVer 2.0.0) parser and comparator for MoonBit.

    semver
    versioning
    Download zip
    Author
    Version
    0.1.2
    License
    Apache-2.0
    Last updated
    last month
    Downloads
    1K

    #mizchi/semver

    Semantic Versioning (SemVer 2.0.0) parser and comparator for MoonBit.

    #Usage

    let v = parse("1.2.3-alpha.1+build.5")
    inspect(v.to_string(), content="1.2.3-alpha.1+build.5")

    let a = parse("1.0.0-alpha")
    let b = parse("1.0.0")
    assert_true(a.compare(b) < 0)

    SemVerError

    pub suberror SemVerError {
    InvalidFormat(String)
    InvalidNumber(String)
    LeadingZero(String)
    InvalidIdentifier(String)
    } derive(Eq,
    Debug
    )

    Errors raised while parsing a SemVer string.

    PreId

    pub enum PreId {
    Num(Int)
    Str(String)
    } derive(Eq, ToJson,
    Debug
    )

    Pre-release identifier.

    SemVer

    pub struct SemVer {
    major : Int
    minor : Int
    patch : Int
    pre : Array[PreId]
    build : Array[String]
    } derive(Eq, ToJson,
    Debug
    )

    Semantic Versioning (SemVer 2.0.0).

    SemVer::compare

    fn SemVer::compare(self : SemVer, other : SemVer) -> Int

    Compare versions by SemVer precedence rules (build metadata ignored).

    SemVer::inc

    fn SemVer::inc(self : SemVer, release : String, identifier? : String, identifier_base? : Int) -> SemVer?

    SemVer::is_prerelease

    fn SemVer::is_prerelease(self : SemVer) -> Bool

    SemVer::new

    fn SemVer::new(major : Int, minor : Int, patch : Int) -> SemVer

    SemVer::strip_build

    fn SemVer::strip_build(self : SemVer) -> SemVer

    SemVer::to_string

    fn SemVer::to_string(self : SemVer) -> String

    SemVer::with_prerelease

    fn SemVer::with_prerelease(major : Int, minor : Int, patch : Int, label : String, number : Int) -> SemVer

    inc

    fn inc(version : String, release : String, identifier? : String, identifier_base? : Int) -> String?

    parse

    fn parse(input : String) -> SemVer raise SemVerError

    Parse a SemVer string.

    try_parse

    fn try_parse(input : String) -> Result[SemVer, SemVerError]

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io