Standard library / std::semver

std::semver

std::semver implements Semantic Versioning (SemVer 2.0.0):

  • strict parsing of MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
  • SemVer precedence comparison (build metadata is ignored)

Full reference: semver.

Quick example#

import std::semver;

fn main () -> int {
  match (std::semver::parse("1.2.3-alpha.1+build.5")) {
    Ok(_) => {
      // Precedence comparison ignores build metadata.
      match (std::semver::parse("1.0.0-alpha")) {
        Ok(a) => {
          match (std::semver::parse("1.0.0")) {
            Ok(b) => {
              if a.cmp(b) >= 0 { return 4; }
              return 0;
            },
            Err(_) => {
              return 3;
            },
          }
        },
        Err(_) => {
          return 2;
        },
      }
    },
    Err(_) => {
      return 1;
    },
  }
}

Source repository · Edit this page · View Markdown