Struct semver::VersionReq
source · pub struct VersionReq {
pub comparators: Vec<Comparator>,
}
Expand description
SemVer version requirement describing the intersection of some version
comparators, such as >=1.2.3, <1.8
.
§Syntax
-
Either
*
(meaning “any”), or one or more comma-separated comparators. -
A
Comparator
is an operator (Op
) and a partial version, separated by optional whitespace. For example>=1.0.0
or>=1.0
. -
Build metadata is syntactically permitted on the partial versions, but is completely ignored, as it’s never relevant to whether any comparator matches a particular version.
-
Whitespace is permitted around commas and around operators. Whitespace is not permitted within a partial version, i.e. anywhere between the major version number and its minor, patch, pre-release, or build metadata.
Fields§
§comparators: Vec<Comparator>
Implementations§
source§impl VersionReq
impl VersionReq
sourcepub const STAR: Self = _
pub const STAR: Self = _
A VersionReq
with no constraint on the version numbers it matches.
Equivalent to VersionReq::parse("*").unwrap()
.
In terms of comparators this is equivalent to >=0.0.0
.
Counterintuitively a *
VersionReq does not match every possible
version number. In particular, in order for any VersionReq
to match
a pre-release version, the VersionReq
must contain at least one
Comparator
that has an explicit major, minor, and patch version
identical to the pre-release being matched, and that has a nonempty
pre-release component. Since *
is not written with an explicit major,
minor, and patch version, and does not contain a nonempty pre-release
component, it does not match any pre-release versions.
sourcepub fn parse(text: &str) -> Result<Self, Error>
pub fn parse(text: &str) -> Result<Self, Error>
Create VersionReq
by parsing from string representation.
§Errors
Possible reasons for the parse to fail include:
-
>a.b
— unexpected characters in the partial version. -
@1.0.0
— unrecognized comparison operator. -
^1.0.0,
— unexpected end of input. -
>=1.0 <2.0
— missing comma between comparators. -
*.*
— unsupported wildcard syntax.
Trait Implementations§
source§impl Clone for VersionReq
impl Clone for VersionReq
source§fn clone(&self) -> VersionReq
fn clone(&self) -> VersionReq
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for VersionReq
impl Debug for VersionReq
source§impl Default for VersionReq
impl Default for VersionReq
The default VersionReq is the same as VersionReq::STAR
.
source§impl Display for VersionReq
impl Display for VersionReq
source§impl FromIterator<Comparator> for VersionReq
impl FromIterator<Comparator> for VersionReq
source§fn from_iter<I>(iter: I) -> Selfwhere
I: IntoIterator<Item = Comparator>,
fn from_iter<I>(iter: I) -> Selfwhere
I: IntoIterator<Item = Comparator>,
source§impl FromStr for VersionReq
impl FromStr for VersionReq
source§impl Hash for VersionReq
impl Hash for VersionReq
source§impl PartialEq for VersionReq
impl PartialEq for VersionReq
source§fn eq(&self, other: &VersionReq) -> bool
fn eq(&self, other: &VersionReq) -> bool
self
and other
values to be equal, and is used
by ==
.