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.