Skip to main content

determine_status

Function determine_status 

Source
pub fn determine_status<S: BuildHasher>(
    name: &str,
    version_req: &str,
    installed: &HashSet<String, S>,
    provided: &HashSet<String, S>,
    upgradable: &HashSet<String, S>,
) -> DependencyStatus
Expand 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 DependencyStatus describing 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() and get_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);