Struct rustsec::Version [−][src]
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.00
is 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.0
is 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.1
is 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.8
is less than1.0.0-pre.12
. -
Identifiers that contain a letter or hyphen are compared in ASCII sort order:
1.0.0-pre12
is less than1.0.0-pre8
. -
Any numeric identifier is always less than any non-numeric identifier:
1.0.0-pre.1
is 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: BuildMetadata
Implementations
Create Version
with an empty pre-release and build metadata.
Equivalent to:
Version {
major,
minor,
patch,
pre: Prerelease::EMPTY,
build: BuildMetadata::EMPTY,
}
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 aVersionReq
instead (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
pub fn deserialize<D>(
deserializer: D
) -> Result<Version, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
pub 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
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
pub 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
Increments the major version number for this Version.
Increments the minor version number for this Version.
Increments the patch version number for this Version.
Increment the alpha pre-release number for this Version. Read more
Increment the beta pre-release number for this Version. Read more
Increment the rc pre-release number for this Version. Read more
Append informational-only metadata.
Checks to see if the current Version is in pre-release status
Auto Trait Implementations
impl RefUnwindSafe for Version
impl UnwindSafe for Version
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.