patholog 1.0.0

Diagnose, explain, clean, and safely repair PATH behavior.
Documentation
/// A command executable found through PATH lookup.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ResolutionCandidate {
    /// PATH entry index where the executable was found.
    pub entry_index: usize,
    /// PATH directory display value.
    pub directory: String,
    /// Full executable path.
    pub path: String,
    /// Whether this candidate is the winning executable.
    pub wins: bool,
}

/// Advisory hint for related command names that were not exact PATH matches.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct RelatedExecutableHint {
    /// Related command name.
    pub command: String,
    /// Paths found for the related command.
    pub paths: Vec<String>,
}

/// Result of command resolution.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ResolutionReport {
    /// Requested command.
    pub command: String,
    /// Exact executable candidates.
    pub candidates: Vec<ResolutionCandidate>,
    /// PATH directories searched, in order.
    pub searched_directories: Vec<String>,
    /// Advisory related executable hints.
    pub related_hints: Vec<RelatedExecutableHint>,
}