Package: effect
Module: Queue
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
Since v4.0.0