pub struct Requirement {
pub op: Op,
pub version: Option<Versioning>,
}Expand description
A version requirement expression, like ^1.4.163.
See also Op for all possibilities.
Fields§
§op: OpThe version requirement operation.
version: Option<Versioning>The version itself. None when op is *.
Implementations§
Source§impl Requirement
impl Requirement
Sourcepub fn matches(&self, other: &Versioning) -> bool
pub fn matches(&self, other: &Versioning) -> bool
Check if a version matches a version constraint.
use versions::{Requirement, Versioning};
use std::str::FromStr;
let gt = Requirement::from_str(">=1.0.0").unwrap();
assert!(gt.matches(&Versioning::new("1.0.0").unwrap()));
assert!(gt.matches(&Versioning::new("1.1.0").unwrap()));
assert!(!gt.matches(&Versioning::new("0.9.0").unwrap()));
let wild = Requirement::from_str("*").unwrap();
assert!(wild.matches(&Versioning::new("1.0.0").unwrap()));
assert!(wild.matches(&Versioning::new("1.1.0").unwrap()));
assert!(wild.matches(&Versioning::new("0.9.0").unwrap()));
let constraint_eq = Requirement::from_str("=1.0.0").unwrap();
assert!(constraint_eq.matches(&Versioning::new("1.0.0").unwrap()));
assert!(!constraint_eq.matches(&Versioning::new("1.1.0").unwrap()));
assert!(!constraint_eq.matches(&Versioning::new("0.9.0").unwrap()));Sourcepub fn parse(i: &str) -> IResult<&str, Requirement>
pub fn parse(i: &str) -> IResult<&str, Requirement>
The raw nom parser for Requirement. Feel free to use this in
combination with other general nom parsers.
Trait Implementations§
Source§impl Clone for Requirement
impl Clone for Requirement
Source§fn clone(&self) -> Requirement
fn clone(&self) -> Requirement
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Requirement
impl Debug for Requirement
Source§impl Default for Requirement
impl Default for Requirement
Source§impl Display for Requirement
impl Display for Requirement
Source§impl FromStr for Requirement
impl FromStr for Requirement
Source§impl Hash for Requirement
impl Hash for Requirement
Source§impl PartialEq for Requirement
impl PartialEq for Requirement
impl Eq for Requirement
impl StructuralPartialEq for Requirement
Auto Trait Implementations§
impl Freeze for Requirement
impl RefUnwindSafe for Requirement
impl Send for Requirement
impl Sync for Requirement
impl Unpin for Requirement
impl UnwindSafe for Requirement
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more