Text-formatter-config-to-json
Convert a typed TextFormatterConfig into a JsonValue. This helper exports formatter toggles, separators, color settings, markup behavior, and optional style tags in a machine-readable form.
Interface
pub fn text_formatter_config_to_json(config : TextFormatterConfig) -> @json_parser.JsonValue {}input
config : TextFormatterConfig- Formatter configuration to export.
output
JsonValue- Structured JSON representation of the formatter config.
Explanation
Detailed rules explaining key parameters and behaviors
- The output includes visibility flags, separators, template, color settings, and markup settings.
style_tagsis exported only when the map is not empty.- Enum-like formatter options are serialized using their stable label strings.
color_mode,color_support, and the markup-mode fields are emitted through their label helpers, so the exported strings stay aligned with the parser-facing formatter config vocabulary.- Nested
style_tagsentries are exported as plain JSON objects keyed by tag name, with eachTextStylerendered as structured config data rather than runtime registry state. - The JSON shape matches the formatter section accepted by config parsing.
How to Use
Here are some specific examples provided.
When Need Structured Formatter Export
When formatter config should be embedded inside a larger config object:
let value = text_formatter_config_to_json(TextFormatterConfig::new(show_target=false))In this example, callers can compose the JSON value without re-implementing serialization.
When Need To Persist Formatter Settings
When generated formatter policy should be stored or inspected:
let formatter_json = text_formatter_config_to_json(
TextFormatterConfig::new(separator=" | ", template="[{level}] {message}"),
)In this example, the config becomes transport-friendly structured data.
Error Case
e.g.:
If
style_tagsis empty, the field is omitted instead of being emitted as an empty object.If callers need immediate text output rather than a JSON value, they should use
stringify_text_formatter_config(...)instead.
Notes
Use this helper when you need a reusable JSON value rather than a final JSON string.
sink_config_to_json(...)reuses this helper for the nestedtext_formatterfield.