pub fn parse_pacman_si_conflicts(text: &str) -> Vec<String>Expand description
What: Extract conflict specifications from pacman -Si “Conflicts With” field.
Inputs:
text: Raw stdout frompacman -Sifor a package.
Output:
- Returns vector of package names that conflict (without version constraints).
Details:
- Scans for lines starting with “Conflicts With”
- Handles multi-line conflicts (continuation lines are indented)
- Splits conflicts on whitespace
- Removes version constraints from package names
- Filters out .so virtual packages and invalid tokens
- Deduplicates conflicts (returns unique list)
- Returns empty vector if no conflicts or “None”
§Examples
use arch_toolkit::deps::parse_pacman_si_conflicts;
let output = "Name : vim\nConflicts With : gvim vi\n";
let conflicts = parse_pacman_si_conflicts(output);
assert_eq!(conflicts, vec!["gvim", "vi"]);
let output = "Name : base\nConflicts With : None\n";
let conflicts = parse_pacman_si_conflicts(output);
assert!(conflicts.is_empty());