lammps-analyser 0.1.0-pre-release-3

A CLI tool and language server for LAMMPS simulation input scripts.
Documentation
macro_rules! derive_styles {
// Comma inside repeat requires trailing comma
($EnumName:ident => $(($variant:tt, $lit:literal),)+) => {

    // #[allow(non_camel_case_types)]
    #[derive(Debug,Eq,PartialEq,Clone,Hash)]
    #[non_exhaustive]
    pub enum $EnumName {
        $($variant,)+
        InvalidStyle,
    }


    impl From<&str> for $EnumName {
        fn from(value: &str) -> Self {
            match value {
                $($lit => $EnumName::$variant,)+
                _ => $EnumName::InvalidStyle,
            }
        }
    }
    impl std::fmt::Display for $EnumName {
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
            match self {
                $($EnumName::$variant => write!(f, $lit),)+
                $EnumName::InvalidStyle => write!(f, "InvalidStyle"),
            }
        }
    }

    impl Default for $EnumName {
        fn default() -> Self {
            $EnumName::InvalidStyle
        }
    }
};
}

pub(crate) use derive_styles;