Hyperlinkv0.8.0-beta.28

Queue

Queue.sizeconsteffect/Queue.ts:1630
<A, E>(self: Dequeue<A, E>): Effect<number>

Returns the current number of buffered messages in the queue.

Details

Completed queues report a size of 0.

Example (Checking queue size)

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 = yield* Queue.size(queue)
  console.log(size1) // 0

  // Add some messages
  yield* Queue.offerAll(queue, [1, 2, 3, 4, 5])

  // Check size after adding messages
  const size2 = yield* Queue.size(queue)
  console.log(size2) // 5

  // End the queue
  yield* Queue.end(queue)

  // Size of ended queue is 0
  const size3 = yield* Queue.size(queue)
  console.log(size3) // 0
})
sizes
Source effect/Queue.ts:16301 lines
export const size = <A, E>(self: Dequeue<A, E>): Effect<number> => internalEffect.sync(() => sizeUnsafe(self))