#[derive(Debug, PartialEq, Eq, Copy, Clone)]
pub enum Mode {
    /// REF
    Reflectivity,
    /// VEL
    Velocity,
    /// SW
    SpectrumWidth,
    /// ZDR
    DifferentialReflectivity,
    /// PHI
    DifferentialPhase,
    /// RHO
    CorrelationCoefficient,
    /// CFP
    ClutterFilterPowerRemoved,
    /// RADR INOP
    RadarInoperative,
}
impl Mode {
    pub fn unselected(&self) -> &str {
        match self {
            Self::Reflectivity => " REF ",
            Self::Velocity => " VEL ",
            Self::SpectrumWidth => " SW  ",
            Self::DifferentialReflectivity => " ZDR ",
            Self::DifferentialPhase => " PHI ",
            Self::CorrelationCoefficient => " RHO ",
            Self::ClutterFilterPowerRemoved => " CFP ",
            Self::RadarInoperative => " RADR INOP",
        }
    }
    pub fn selected(&self) -> &str {
        match self {
            Self::Reflectivity => ">REF<",
            Self::Velocity => ">VEL<",
            Self::SpectrumWidth => ">SW <",
            Self::DifferentialReflectivity => ">ZDR<",
            Self::DifferentialPhase => ">PHI<",
            Self::CorrelationCoefficient => ">RHO<",
            Self::ClutterFilterPowerRemoved => ">CFP<",
            Self::RadarInoperative => ">RADR INOP<",
        }
    }

    pub fn rname(&self) -> &str {
        match self {
            Self::Reflectivity => "REF",
            Self::Velocity => "VEL",
            Self::SpectrumWidth => "SW ",
            Self::DifferentialReflectivity => "ZDR",
            Self::DifferentialPhase => "PHI",
            Self::CorrelationCoefficient => "RHO",
            Self::ClutterFilterPowerRemoved => "CFP",
            Self::RadarInoperative => "NOP",
        }
    }
}
