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: u64minor: u64patch: u64pre: Prereleasebuild: BuildMetadataImplementations
sourceimpl Version
 
impl Version
sourcepub const fn new(major: u64, minor: u64, patch: u64) -> Version
 
pub const fn new(major: u64, minor: u64, patch: u64) -> Version
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<Version, Error>
 
pub fn parse(text: &str) -> Result<Version, 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
sourceimpl<'de> Deserialize<'de> for Version
 
impl<'de> Deserialize<'de> for Version
sourcefn deserialize<D>(
    deserializer: D
) -> Result<Version, <D as Deserializer<'de>>::Error> where
    D: Deserializer<'de>, 
 
fn deserialize<D>(
    deserializer: D
) -> Result<Version, <D as Deserializer<'de>>::Error> where
    D: Deserializer<'de>, 
Deserialize this value from the given Serde deserializer. Read more
sourceimpl Ord for Version
 
impl Ord for Version
sourceimpl PartialOrd<Version> for Version
 
impl PartialOrd<Version> for Version
sourcefn partial_cmp(&self, other: &Version) -> Option<Ordering>
 
fn partial_cmp(&self, other: &Version) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
 
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
sourceimpl Serialize for Version
 
impl Serialize for Version
sourcefn serialize<S>(
    &self,
    serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
    S: Serializer, 
 
fn serialize<S>(
    &self,
    serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
    S: Serializer, 
Serialize this value into the given Serde serializer. Read more
impl Eq for Version
impl StructuralEq for Version
impl StructuralPartialEq for Version
Auto Trait Implementations
impl RefUnwindSafe for Version
impl Send for Version
impl Sync for Version
impl Unpin for Version
impl UnwindSafe for Version
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
    T: ?Sized, 
 
impl<T> BorrowMut<T> for T where
    T: ?Sized, 
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized, 
 
impl<Q, K> Equivalent<K> for Q where
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized, 
sourcefn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
Compare self to key and return true if they are equal.
sourceimpl<T> Instrument for T
 
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
 
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
    S: Into<Dispatch>, 
 
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
    S: Into<Dispatch>, 
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
 
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more