diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-05-16 00:07:59 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-05-16 00:09:55 +0800 |
| commit | a127d6f3cf2741d4dc404959c5481fa61651e133 (patch) | |
| tree | ec82ed1260e5a3d5744f2181b79d21ffb65e54e8 /mingling/src | |
| parent | aae29170dc7ae7a8976699c4d1f7011f9f238a06 (diff) | |
Refactor general_renderer into granular format-specific features
Diffstat (limited to 'mingling/src')
| -rw-r--r-- | mingling/src/example_docs.rs | 2 | ||||
| -rw-r--r-- | mingling/src/features.rs | 24 | ||||
| -rw-r--r-- | mingling/src/lib.rs | 12 | ||||
| -rw-r--r-- | mingling/src/setups/general_renderer.rs | 7 |
4 files changed, 45 insertions, 0 deletions
diff --git a/mingling/src/example_docs.rs b/mingling/src/example_docs.rs index ba61f92..d197c6b 100644 --- a/mingling/src/example_docs.rs +++ b/mingling/src/example_docs.rs @@ -445,6 +445,8 @@ pub mod example_exit_code {} /// mingling = { path = "../../mingling", features = [ /// "parser", /// "general_renderer", +/// "json_serde_fmt", +/// "yaml_serde_fmt", /// ] } /// serde = { version = "1", features = ["derive"] } /// ``` diff --git a/mingling/src/features.rs b/mingling/src/features.rs index d75f926..7d78012 100644 --- a/mingling/src/features.rs +++ b/mingling/src/features.rs @@ -51,3 +51,27 @@ pub const MINGLING_PARSER: bool = false; #[cfg(feature = "parser")] pub const MINGLING_PARSER: bool = true; + +#[cfg(not(feature = "json_serde_fmt"))] +pub const MINGLING_JSON_SERDE_FMT: bool = false; + +#[cfg(feature = "json_serde_fmt")] +pub const MINGLING_JSON_SERDE_FMT: bool = true; + +#[cfg(not(feature = "yaml_serde_fmt"))] +pub const MINGLING_YAML_SERDE_FMT: bool = false; + +#[cfg(feature = "yaml_serde_fmt")] +pub const MINGLING_YAML_SERDE_FMT: bool = true; + +#[cfg(not(feature = "toml_serde_fmt"))] +pub const MINGLING_TOML_SERDE_FMT: bool = false; + +#[cfg(feature = "toml_serde_fmt")] +pub const MINGLING_TOML_SERDE_FMT: bool = true; + +#[cfg(not(feature = "ron_serde_fmt"))] +pub const MINGLING_RON_SERDE_FMT: bool = false; + +#[cfg(feature = "ron_serde_fmt")] +pub const MINGLING_RON_SERDE_FMT: bool = true; diff --git a/mingling/src/lib.rs b/mingling/src/lib.rs index 6a165b2..4803c23 100644 --- a/mingling/src/lib.rs +++ b/mingling/src/lib.rs @@ -171,6 +171,18 @@ pub mod feature { /// Whether the `repl` feature is enabled pub use crate::features::MINGLING_REPL; + + /// Whether the `json_serde_fmt` feature is enabled + pub use crate::features::MINGLING_JSON_SERDE_FMT; + + /// Whether the `ron_serde_fmt` feature is enabled + pub use crate::features::MINGLING_RON_SERDE_FMT; + + /// Whether the `toml_serde_fmt` feature is enabled + pub use crate::features::MINGLING_TOML_SERDE_FMT; + + /// Whether the `yaml_serde_fmt` feature is enabled + pub use crate::features::MINGLING_YAML_SERDE_FMT; } mod setups; diff --git a/mingling/src/setups/general_renderer.rs b/mingling/src/setups/general_renderer.rs index a1d1f06..81b6cd0 100644 --- a/mingling/src/setups/general_renderer.rs +++ b/mingling/src/setups/general_renderer.rs @@ -31,22 +31,29 @@ impl<C> ProgramSetup<C> for GeneralRendererSetup where C: ProgramCollect<Enum = C>, { + #[allow(unused_variables)] fn setup(&mut self, program: &mut Program<C>) { + #[cfg(feature = "json_serde_fmt")] program.global_flag("--json", |p| { p.general_renderer_name = crate::GeneralRendererSetting::Json }); + #[cfg(feature = "json_serde_fmt")] program.global_flag("--json-pretty", |p| { p.general_renderer_name = crate::GeneralRendererSetting::JsonPretty; }); + #[cfg(feature = "yaml_serde_fmt")] program.global_flag("--yaml", |p| { p.general_renderer_name = crate::GeneralRendererSetting::Yaml; }); + #[cfg(feature = "toml_serde_fmt")] program.global_flag("--toml", |p| { p.general_renderer_name = crate::GeneralRendererSetting::Toml; }); + #[cfg(feature = "ron_serde_fmt")] program.global_flag("--ron", |p| { p.general_renderer_name = crate::GeneralRendererSetting::Ron; }); + #[cfg(feature = "ron_serde_fmt")] program.global_flag("--ron-pretty", |p| { p.general_renderer_name = crate::GeneralRendererSetting::RonPretty; }); |
