onpath 0.2.0

Get your tools on the PATH — cross-shell, cross-platform, zero fuss
Documentation
use std::fmt;

/// Identifies a supported shell.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum ShellKind {
    /// POSIX-compatible `sh`.
    Posix,
    /// GNU Bash.
    Bash,
    /// Zsh (Z shell).
    Zsh,
    /// Fish shell.
    Fish,
    /// Nushell.
    Nushell,
    /// `PowerShell` (cross-platform).
    PowerShell,
    /// Tcsh / csh.
    Tcsh,
    /// Xonsh (Python-powered shell).
    Xonsh,
}

impl fmt::Display for ShellKind {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        f.write_str(match self {
            Self::Posix => "sh",
            Self::Bash => "Bash",
            Self::Zsh => "Zsh",
            Self::Fish => "Fish",
            Self::Nushell => "Nushell",
            Self::PowerShell => "PowerShell",
            Self::Tcsh => "Tcsh",
            Self::Xonsh => "Xonsh",
        })
    }
}