Struct proto_pdk_api::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
Comparatoris an operator (Op) and a partial version, separated by optional whitespace. For example>=1.0.0or>=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: VersionReq = _
pub const STAR: VersionReq = _
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<VersionReq, Error>
pub fn parse(text: &str) -> Result<VersionReq, 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§fn default() -> VersionReq
fn default() -> VersionReq
source§impl<'de> Deserialize<'de> for VersionReq
impl<'de> Deserialize<'de> for VersionReq
source§fn deserialize<D>(
deserializer: D
) -> Result<VersionReq, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>( deserializer: D ) -> Result<VersionReq, <D as Deserializer<'de>>::Error>where D: Deserializer<'de>,
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) -> VersionReqwhere
I: IntoIterator<Item = Comparator>,
fn from_iter<I>(iter: I) -> VersionReqwhere 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 ==.