pub fn version_satisfies(version: &str, requirement: &str) -> boolExpand 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
trueif the version satisfies the requirement. - Returns
falseif the version does not satisfy the requirement. - Returns
trueif 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