Hyperlinkv0.8.0-beta.28

Queue

Queue.failCauseconsteffect/Queue.ts:881
<E>(cause: Cause<E>): <A>(self: Enqueue<A, E>) => Effect<boolean>
<A, E>(self: Enqueue<A, E>, cause: Cause<E>): Effect<boolean>

Fails the queue with a cause. If the queue is already done, false is returned.

Example (Failing queues with a cause)

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

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

  // Create a cause and fail the queue
  const cause = Cause.fail("Queue processing failed")
  const failed = yield* Queue.failCause(queue, cause)
  console.log(failed) // true

  // The queue is now done with the specified failure cause
  console.log(queue.state._tag) // "Done"
})
completion
Source effect/Queue.ts:8818 lines
export const failCause: {
  <E>(cause: Cause<E>): <A>(self: Enqueue<A, E>) => Effect<boolean>
  <A, E>(self: Enqueue<A, E>, cause: Cause<E>): Effect<boolean>
} = dual(
  2,
  <A, E>(self: Enqueue<A, E>, cause: Cause<E>): Effect<boolean> =>
    internalEffect.sync(() => failCauseUnsafe(self, cause))
)
Referenced by 9 symbols