Skip to content

Text-formatter-config-to-json ​

Convert a typed TextFormatterConfig into a Json. This helper exports formatter toggles, separators, color settings, markup behavior, and optional style tags in a machine-readable form.

Interface ​

moonbit
pub fn text_formatter_config_to_json(config : TextFormatterConfig) -> Json {}

input ​

  • config : TextFormatterConfig - Formatter configuration to export.

output ​

  • Json - 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_tags is 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_tags entries are exported as plain JSON objects keyed by tag name, with each TextStyle rendered 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:

moonbit
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:

moonbit
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_tags is 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 ​

  1. Use this helper when you need a reusable JSON value rather than a final JSON string.

  2. sink_config_to_json(...) reuses this helper for the nested text_formatter field.

Published from the repository docs folder with VitePress.