/// Convenience unification entrypoint /// to make friends with all the different syntax-consumers #[derive(Debug, Clone, Copy)] pub enum OneSyntaxToRuleThemAll { Sass, Scss, } impl Default for OneSyntaxToRuleThemAll { fn default() -> Self { Self::Scss } } impl TryFrom<&str> for OneSyntaxToRuleThemAll { type Error = (); fn try_from(value: &str) -> Result { match value { "sass" => Ok(Self::Sass), "scss" => Ok(Self::Scss), _ => Err(()), } } } impl TryFrom for OneSyntaxToRuleThemAll { type Error = (); fn try_from(value: raffia::Syntax) -> Result { match value { raffia::Syntax::Sass => Ok(Self::Sass), raffia::Syntax::Scss => Ok(Self::Scss), _ => Err(()), } } } #[cfg(feature = "compile")] impl TryFrom for OneSyntaxToRuleThemAll { type Error = (); fn try_from(value: grass::InputSyntax) -> Result { match value { grass::InputSyntax::Sass => Ok(Self::Sass), grass::InputSyntax::Scss => Ok(Self::Scss), _ => Err(()), } } } impl From for raffia::Syntax { fn from(value: OneSyntaxToRuleThemAll) -> Self { match value { OneSyntaxToRuleThemAll::Sass => Self::Sass, OneSyntaxToRuleThemAll::Scss => Self::Scss, } } } #[cfg(feature = "compile")] impl From for grass::InputSyntax { fn from(value: OneSyntaxToRuleThemAll) -> Self { match value { OneSyntaxToRuleThemAll::Scss => Self::Scss, OneSyntaxToRuleThemAll::Sass => Self::Sass, } } }