patholog 1.0.0

Diagnose, explain, clean, and safely repair PATH behavior.
Documentation
use crate::model::IssueKind;

pub(super) fn parse_fail_on(value: &str) -> Result<Vec<IssueKind>, String> {
    if value.is_empty() {
        return Ok(Vec::new());
    }

    let mut selected = Vec::new();
    for raw_kind in value.split(',') {
        let kind_value = raw_kind.trim();
        if kind_value.is_empty() {
            continue;
        }
        let kind = kind_value
            .parse::<IssueKind>()
            .map_err(|error| format!("unsupported issue kind {kind_value:?}; {error}"))?;
        if !selected.contains(&kind) {
            selected.push(kind);
        }
    }
    Ok(selected)
}