From a127d6f3cf2741d4dc404959c5481fa61651e133 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 16 May 2026 00:07:59 +0800 Subject: Refactor general_renderer into granular format-specific features --- mingling_core/src/program/config.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'mingling_core/src/program/config.rs') diff --git a/mingling_core/src/program/config.rs b/mingling_core/src/program/config.rs index c3b1b0e..b5b46a0 100644 --- a/mingling_core/src/program/config.rs +++ b/mingling_core/src/program/config.rs @@ -71,16 +71,22 @@ pub enum GeneralRendererSetting { #[default] Disable, /// Render output as compact JSON. + #[cfg(feature = "json_serde_fmt")] Json, /// Render output as pretty-printed JSON. + #[cfg(feature = "json_serde_fmt")] JsonPretty, /// Render output as YAML. + #[cfg(feature = "yaml_serde_fmt")] Yaml, /// Render output as TOML. + #[cfg(feature = "toml_serde_fmt")] Toml, /// Render output as RON. + #[cfg(feature = "ron_serde_fmt")] Ron, /// Render output as pretty-printed RON. + #[cfg(feature = "ron_serde_fmt")] RonPretty, } @@ -91,11 +97,17 @@ impl std::str::FromStr for GeneralRendererSetting { fn from_str(s: &str) -> Result { match just_fmt::kebab_case!(s).as_str() { "disable" => Ok(GeneralRendererSetting::Disable), + #[cfg(feature = "json_serde_fmt")] "json" => Ok(GeneralRendererSetting::Json), + #[cfg(feature = "json_serde_fmt")] "json-pretty" => Ok(GeneralRendererSetting::JsonPretty), + #[cfg(feature = "yaml_serde_fmt")] "yaml" => Ok(GeneralRendererSetting::Yaml), + #[cfg(feature = "toml_serde_fmt")] "toml" => Ok(GeneralRendererSetting::Toml), + #[cfg(feature = "ron_serde_fmt")] "ron" => Ok(GeneralRendererSetting::Ron), + #[cfg(feature = "ron_serde_fmt")] "ron-pretty" => Ok(GeneralRendererSetting::RonPretty), _ => Err(format!("Invalid renderer: '{}'", s)), } @@ -121,11 +133,17 @@ impl std::fmt::Display for GeneralRendererSetting { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { GeneralRendererSetting::Disable => write!(f, "disable"), + #[cfg(feature = "json_serde_fmt")] GeneralRendererSetting::Json => write!(f, "json"), + #[cfg(feature = "json_serde_fmt")] GeneralRendererSetting::JsonPretty => write!(f, "json-pretty"), + #[cfg(feature = "yaml_serde_fmt")] GeneralRendererSetting::Yaml => write!(f, "yaml"), + #[cfg(feature = "toml_serde_fmt")] GeneralRendererSetting::Toml => write!(f, "toml"), + #[cfg(feature = "ron_serde_fmt")] GeneralRendererSetting::Ron => write!(f, "ron"), + #[cfg(feature = "ron_serde_fmt")] GeneralRendererSetting::RonPretty => write!(f, "ron-pretty"), } } -- cgit