Skip to content

Queue-config-type

QueueConfig is the public serializable config type used to describe synchronous queue wrapping. It is a direct alias to the queue config model used by sync logger configuration, parsers, and queue config serializers.

Interface

moonbit
pub type QueueConfig = @utils.QueueConfig

output

  • QueueConfig - Public queue config object containing max_pending and overflow.

Explanation

Detailed rules explaining key parameters and behaviors

  • This is a type alias, not a runtime queue instance.
  • The current fields are max_pending : Int and overflow : QueueOverflowPolicy.
  • QueueConfig::new(...) constructs this type as the normal handwritten entry point.
  • queue_config_to_json(...) and stringify_queue_config(...) serialize the same public config shape for tooling or persistence.

How to Use

Here are some specific examples provided.

When Need A Typed Queue Policy Value

When synchronous queue behavior should be carried as config instead of attached immediately to a logger:

moonbit
let queue : QueueConfig = QueueConfig::new(32, overflow=QueueOverflowPolicy::DropOldest)

In this example, the queue policy stays as one typed value that can be embedded into larger config objects later.

When Need To Inspect Or Export Queue Settings

When queue wrapping policy should be serialized or logged before build time:

moonbit
let queue = QueueConfig::new(8)
println(stringify_queue_config(queue, pretty=true))

In this example, the same public config type supports both inspection and later runtime assembly.

Error Case

e.g.:

  • QueueConfig itself does not have a runtime failure mode.

  • If queue config is never attached to a LoggerConfig, it remains valid data but has no effect on built runtime loggers.

Notes

  1. Use QueueConfig::new(...) when you need a value of this type in code.

  2. Use QueuedSink or Logger::with_queue(...) when you need direct runtime queue composition instead of config data.

Published from the repository docs folder with VitePress.