Hyperlinkv0.8.0-beta.28

TxQueue

TxQueue.droppingconsteffect/TxQueue.ts:457
<A = never, E = never>(capacity: number): Effect.Effect<TxQueue<A, E>>

Creates a new dropping TxQueue with the specified capacity that drops new items when full.

Details

This function returns a new TxQueue reference with dropping strategy. No existing TxQueue instances are modified.

Example (Creating dropping queues)

import { Effect, TxQueue } from "effect"

const program = Effect.gen(function*() {
  // Create a dropping queue with capacity 2
  const queue = yield* TxQueue.dropping<number>(2)

  // Fill to capacity
  yield* TxQueue.offer(queue, 1)
  yield* TxQueue.offer(queue, 2)

  // This will be dropped (returns false)
  const accepted = yield* TxQueue.offer(queue, 3)
  console.log(accepted) // false
})
constructors
Source effect/TxQueue.ts:45714 lines
export const dropping = <A = never, E = never>(
  capacity: number
): Effect.Effect<TxQueue<A, E>> =>
  Effect.gen(function*() {
    const items = yield* TxChunk.empty<A>()
    const stateRef = yield* TxRef.make<State<A, E>>({ _tag: "Open" })

    const txQueue = Object.create(TxQueueProto)
    txQueue.strategy = "dropping"
    txQueue.capacity = capacity
    txQueue.items = items
    txQueue.stateRef = stateRef
    return txQueue
  }).pipe(Effect.tx)