Module semver

Source
Expand description

Semantic version parsing and comparison.


semver provides parsing and manipulation of semantic version numbers according to the semver specification. Crate authors following Rust semver guidelines keep each others’ builds from breaking.

§Examples

Parsing and comparing versions:

use semver::Version;

let v1 = Version::parse("1.2.3").unwrap();
let v2 = Version::parse("1.2.4").unwrap();

assert_eq!(v1.major, 1);
assert_eq!(v1.minor, 2);
assert_eq!(v1.patch, 3);

assert!(v1 < v2);

Working with prerelease versions:

use semver::Version;

let stable = Version::parse("1.0.0").unwrap();
let prerelease = Version::parse("1.0.0-alpha.1").unwrap();

assert!(prerelease < stable);
assert_eq!(prerelease.pre.as_str(), "alpha.1");

Version requirements and compatibility:

use semver::{Version, VersionReq};

let req = VersionReq::parse(">=1.2.0, <2.0.0").unwrap();
let version = Version::parse("1.5.0").unwrap();

assert!(req.matches(&version));

Structs§

BuildMetadata
Optional build metadata identifier. This comes after + in a SemVer version, as in 0.8.1+zstd.1.5.0.
Comparator
A pair of comparison operator and partial version, such as >=1.2. Forms one piece of a VersionReq.
Error
Error parsing a SemVer version or version requirement.
Prerelease
Optional pre-release identifier on a version string. This comes after - in a SemVer version, like 1.0.0-alpha.1
Version
SemVer version as defined by https://semver.org.
VersionReq
SemVer version requirement describing the intersection of some version comparators, such as >=1.2.3, <1.8.

Enums§

Op
SemVer comparison operator: =, >, >=, <, <=, ~, ^, *.