Skip to main content

version_satisfies

Function version_satisfies 

Source
pub fn version_satisfies(version: &str, requirement: &str) -> bool
Expand description

What: Check if a version satisfies a version requirement.

Inputs:

  • version: Version string to check (e.g., “1.2.3”).
  • requirement: Version requirement with operator (e.g., “>=1.2.0”, “=2.0”, “<3.0”).

Output:

  • Returns true if the version satisfies the requirement.
  • Returns false if the version does not satisfy the requirement.
  • Returns true if requirement is empty or has no operator (no constraint).

Details:

  • Supports operators: >=, <=, =, >, <.
  • Uses compare_versions() for proper version comparison (not string comparison).
  • Matches libalpm by comparing pkgrel only when both operands declare one.
  • Empty or invalid requirement strings default to true (no constraint).

§Example

use arch_toolkit::deps::version_satisfies;

assert!(version_satisfies("2.0", ">=1.5"));
assert!(!version_satisfies("1.0", ">=1.5"));
assert!(version_satisfies("1.5", "<=1.5"));
assert!(version_satisfies("1.6", ">1.5"));
assert!(!version_satisfies("1.4", ">1.5"));
assert!(version_satisfies("1.5", "=1.5"));
assert!(!version_satisfies("1.6", "<1.5"));
assert!(version_satisfies("2.0", "")); // Empty requirement = satisfied