Hyperlinkv0.8.0-beta.28

Queue

Queue.sizeUnsafeconsteffect/Queue.ts:1703
<A, E>(self: Dequeue<A, E>): number

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
})
sizes
Source effect/Queue.ts:17031 lines
export const sizeUnsafe = <A, E>(self: Dequeue<A, E>): number => self.state._tag === "Done" ? 0 : self.messages.length
Referenced by 2 symbols