pub struct Requirement {
pub constraints: Vec<VersionConstraint>,
}Expand description
A compound version requirement (one or more constraints, all must be satisfied).
This is equivalent to Ruby’s Gem::Requirement. A version must satisfy ALL
constraints to match the requirement.
§Examples
use gem_audit::version::Requirement;
let req = Requirement::parse("~> 1.2.3").unwrap();Fields§
§constraints: Vec<VersionConstraint>Implementations§
Source§impl Requirement
impl Requirement
Sourcepub fn parse(input: &str) -> Result<Self, RequirementError>
pub fn parse(input: &str) -> Result<Self, RequirementError>
Parse a requirement string.
Supports:
- Single constraint:
">= 1.0.0","~> 2.3" - Compound constraints (comma-separated):
">= 1.0, < 2.0" - Default operator is
=when omitted:"1.0.0"means"= 1.0.0"
Sourcepub fn parse_multiple(inputs: &[&str]) -> Result<Self, RequirementError>
pub fn parse_multiple(inputs: &[&str]) -> Result<Self, RequirementError>
Parse multiple requirement strings (as Ruby’s Gem::Requirement.new(*args)).
Each string can itself contain comma-separated constraints.
Sourcepub fn satisfied_by(&self, version: &Version) -> bool
pub fn satisfied_by(&self, version: &Version) -> bool
Check if the given version satisfies all constraints in this requirement.
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 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 UnsafeUnpin 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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.