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§
- Build
Metadata - Optional build metadata identifier. This comes after
+
in a SemVer version, as in0.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, like1.0.0-alpha.1
- Version
- SemVer version as defined by https://semver.org.
- Version
Req - SemVer version requirement describing the intersection of some version
comparators, such as
>=1.2.3, <1.8
.
Enums§
- Op
- SemVer comparison operator:
=
,>
,>=
,<
,<=
,~
,^
,*
.