effect-io-ai

Package: effect
Module: Queue

Queue.sizeUnsafe

Returns the current number of buffered messages in the queue synchronously.

When to use

Use when you need an immediate Queue size snapshot for diagnostics or internals and do not need the read wrapped in Effect.

Details

Completed queues report a size of 0. This unsafe operation reads the queue state directly without Effect wrapping.

Example (Checking queue size synchronously)

import { Cause, Effect, Option, Queue } from "effect"

const program = Effect.gen(function*() {
  const queue = yield* Queue.bounded<number, Cause.Done>(10)

  // Check size of empty queue
  const size1 = Queue.sizeUnsafe(queue)
  console.log(size1) // 0

  // Add some messages
  Queue.offerUnsafe(queue, 1)
  Queue.offerUnsafe(queue, 2)
  Queue.offerUnsafe(queue, 3)

  // Check size after adding messages
  const size2 = Queue.sizeUnsafe(queue)
  console.log(size2) // 3

  // End the queue
  Queue.endUnsafe(queue)

  // Size of ended queue is 0
  const size3 = Queue.sizeUnsafe(queue)
  console.log(size3) // 0
})

Signature

declare const sizeUnsafe: <A, E>(self: Dequeue<A, E>) => number

Source

Since v4.0.0