Skip to content

Queued-sink-pending-count ​

Read the current queued-record count from a QueuedSink[S]. This is the direct sink-level backlog metric for records that have been queued but not yet drained to the wrapped sink.

Interface ​

moonbit
pub fn[S] QueuedSink::pending_count(self : QueuedSink[S]) -> Int {

input ​

  • self : QueuedSink[S] - Queued sink whose current pending backlog should be inspected.

output ​

  • Int - Current number of queued records.

Explanation ​

Detailed rules explaining key parameters and behaviors

  • The return value is self.queue.length() at the time of the call.
  • This is a point-in-time metric and may change immediately after it is read.
  • It reflects queued records that have not yet been drained or flushed to the wrapped sink.
  • This helper does not mutate the sink.

How to Use ​

Here are some specific examples provided.

When Need Direct Queue Backlog Visibility ​

When code is working with a QueuedSink value directly and wants to inspect backlog pressure:

moonbit
let pending = sink.pending_count()

In this example, callers can inspect the current queue size without draining it.

When Verify Drain Progress ​

When manual draining should be checked operationally:

moonbit
ignore(sink.drain(max_items=8))
ignore(sink.pending_count())

In this example, the metric helps verify whether a drain step reduced queued backlog.

Error Case ​

e.g.:

  • This helper does not have a normal failure mode; it only reads current queue length.

  • If callers only need simple threshold buffering instead of an explicit queue, BufferedSink::pending_count() may be the better API.

Notes ​

  1. Use this helper for direct visibility into queue backlog on QueuedSink values.

  2. Pair it with dropped_count() when investigating queue pressure.

Published from the repository docs folder with VitePress.