pub struct Version {
    pub major: u64,
    pub minor: u64,
    pub patch: u64,
    pub pre: Prerelease,
    pub build: BuildMetadata,
}Expand description
SemVer version as defined by https://semver.org.
Syntax
- 
The major, minor, and patch numbers may be any integer 0 through u64::MAX. When representing a SemVer version as a string, each number is written as a base 10 integer. For example, 1.0.119.
- 
Leading zeros are forbidden in those positions. For example 1.01.00is invalid as a SemVer version.
- 
The pre-release identifier, if present, must conform to the syntax documented for Prerelease.
- 
The build metadata, if present, must conform to the syntax documented for BuildMetadata.
- 
Whitespace is not allowed anywhere in the version. 
Total ordering
Given any two SemVer versions, one is less than, greater than, or equal to the other. Versions may be compared against one another using Rust’s usual comparison operators.
- 
The major, minor, and patch number are compared numerically from left to right, lexicographically ordered as a 3-tuple of integers. So for example version 1.5.0is less than version1.19.0, despite the fact that “1.19.0” < “1.5.0” as ASCIIbetically compared strings and 1.19 < 1.5 as real numbers.
- 
When major, minor, and patch are equal, a pre-release version is considered less than the ordinary release: version 1.0.0-alpha.1is less than version1.0.0.
- 
Two pre-releases of the same major, minor, patch are compared by lexicographic ordering of dot-separated components of the pre-release string. - 
Identifiers consisting of only digits are compared numerically: 1.0.0-pre.8is less than1.0.0-pre.12.
- 
Identifiers that contain a letter or hyphen are compared in ASCII sort order: 1.0.0-pre12is less than1.0.0-pre8.
- 
Any numeric identifier is always less than any non-numeric identifier: 1.0.0-pre.1is less than1.0.0-pre.x.
 
- 
Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0
Fields§
§major: u64§minor: u64§patch: u64§pre: Prerelease§build: BuildMetadataImplementations§
source§impl Version
 
impl Version
sourcepub const fn new(major: u64, minor: u64, patch: u64) -> Self
 
pub const fn new(major: u64, minor: u64, patch: u64) -> Self
Create Version with an empty pre-release and build metadata.
Equivalent to:
Version {
    major,
    minor,
    patch,
    pre: Prerelease::EMPTY,
    build: BuildMetadata::EMPTY,
}sourcepub fn parse(text: &str) -> Result<Self, Error>
 
pub fn parse(text: &str) -> Result<Self, Error>
Create Version by parsing from string representation.
Errors
Possible reasons for the parse to fail include:
- 
1.0— too few numeric components. A SemVer version must have exactly three. If you are looking at something that has fewer than three numbers in it, it’s possible it is aVersionReqinstead (with an implicit default^comparison operator).
- 
1.0.01— a numeric component has a leading zero.
- 
1.0.unknown— unexpected character in one of the components.
- 
1.0.0-or1.0.0+— the pre-release or build metadata are indicated present but empty.
- 
1.0.0-alpha_123— pre-release or build metadata have something outside the allowed characters, which are0-9,A-Z,a-z,-, and.(dot).
- 
23456789999999999999.0.0— overflow of a u64.
Trait Implementations§
source§impl Ord for Version
 
impl Ord for Version
source§impl PartialEq<Version> for Version
 
impl PartialEq<Version> for Version
source§impl PartialOrd<Version> for Version
 
impl PartialOrd<Version> for Version
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read more