Struct semver::BuildMetadata [−][src]
pub struct BuildMetadata { /* fields omitted */ }
Expand description
Optional build metadata identifier. This comes after +
in a SemVer
version, as in 0.8.1+zstd.1.5.0
.
Examples
Some real world build metadata idioms drawn from crates.io:
-
libgit2-sys
0.12.20+1.1.0
— for this crate, the build metadata indicates the version of the C libgit2 library that the Rust crate is built against. -
mashup
0.1.13+deprecated
— just the word “deprecated” for a crate that has been superseded by another. Eventually people will take notice of this in Cargo’s build output where it lists the crates being compiled. -
google-bigquery2
2.0.4+20210327
— this library is automatically generated from an official API schema, and the build metadata indicates the date on which that schema was last captured. -
fbthrift-git
0.0.6+c7fcc0e
— this crate is published from snapshots of a big company monorepo. In monorepo development, there is no concept of versions, and all downstream code is just updated atomically in the same commit that breaking changes to a library are landed. Therefore for crates.io purposes, every published version must be assumed to be incompatible with the previous. The build metadata provides the source control hash of the snapshotted code.
Syntax
Build metadata is a series of dot separated identifiers immediately
following the patch or pre-release version. Identifiers must comprise only
ASCII alphanumerics and hyphens: 0-9
, A-Z
, a-z
, -
. Identifiers must
not be empty. Leading zeros are allowed, unlike any other place in the
SemVer grammar.
Total ordering
Build metadata is ignored in evaluating VersionReq
; it plays no role in
whether a Version
matches any one of the comparison operators.
However for comparing build metadatas among one another, they do have a total order which is determined by lexicographic ordering of dot-separated components. Identifiers consisting of only digits are compared numerically. Otherwise, identifiers are compared in ASCII sort order. Any numeric identifier is always less than any non-numeric identifier.
Example: demo
< demo.85
< demo.90
< demo.090
< demo.200
< demo.1a0
< demo.a
< memo
Implementations
Trait Implementations
Returns the “default value” for a type. Read more
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
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
Auto Trait Implementations
impl RefUnwindSafe for BuildMetadata
impl Send for BuildMetadata
impl Sync for BuildMetadata
impl Unpin for BuildMetadata
impl UnwindSafe for BuildMetadata
Blanket Implementations
Mutably borrows from an owned value. Read more