pub fn determine_status<S: BuildHasher>(
name: &str,
version_req: &str,
installed: &HashSet<String, S>,
provided: &HashSet<String, S>,
upgradable: &HashSet<String, S>,
) -> DependencyStatusExpand description
What: Evaluate a dependency’s installation status relative to required versions.
Inputs:
name: Dependency package identifier.version_req: Optional version constraint string (e.g.,>=1.2).installed: Set of names currently installed on the system.provided: Set of package names provided by installed packages.upgradable: Set of names pacman reports as upgradable.
Output:
- Returns a
DependencyStatusdescribing whether installation, upgrade, or no action is needed.
Details:
- Combines local database queries with helper functions to capture upgrade requirements.
- Uses
is_package_installed_or_provided()to check if package is available. - Uses
get_installed_version()andget_available_version()for version checking. - Uses
version_satisfies()for version requirement validation.
§Example
use arch_toolkit::deps::determine_status;
use std::collections::HashSet;
let installed = HashSet::from(["glibc".to_string()]);
let provided = HashSet::new();
let upgradable = HashSet::new();
let status = determine_status("glibc", "", &installed, &provided, &upgradable);
println!("Status: {:?}", status);