Hyperlinkv0.8.0-beta.28

TxPriorityQueue

TxPriorityQueue.takeAllconsteffect/TxPriorityQueue.ts:405
<A>(self: TxPriorityQueue<A>): Effect.Effect<Array<A>>

Takes all elements from the queue, returning them in priority order.

Example (Taking all values in priority order)

import { Effect, Order, TxPriorityQueue } from "effect"

const program = Effect.gen(function*() {
  const pq = yield* TxPriorityQueue.fromIterable(Order.Number, [3, 1, 2])
  const all = yield* TxPriorityQueue.takeAll(pq)
  console.log(all) // [1, 2, 3]
})
mutations
export const takeAll = <A>(self: TxPriorityQueue<A>): Effect.Effect<Array<A>> =>
  Effect.map(
    TxRef.modify(self.ref, (chunk) => [chunk, C.empty()]),
    C.toArray
  )