Files
BitLogger/docs/api/queue-config-type.md
T
2026-07-07 20:05:10 +08:00

2.3 KiB

name, group, category, update-time, description, key-word
name group category update-time description key-word
queue-config-type api config 20260707 Public queue config type re-exported from config_model for serializable sync queue settings.
queue
config
alias
public

Queue-config-type

QueueConfig is the public serializable config type used to describe synchronous queue wrapping. On the root src facade, it is re-exported from src/config_model, which is the real owner of the concrete queue config model.

Interface

pub using @config_model { type QueueConfig }

output

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

Explanation

Detailed rules explaining key parameters and behaviors

  • This root surface is a re-export, not the concrete owner definition.
  • The concrete type lives in @config_model.QueueConfig, not in @utils.
  • 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:

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:

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.