<A>(order: Order<A>): (
...elements: Array<A>
) => Effect.Effect<TxPriorityQueue<A>>Creates a TxPriorityQueue from variadic elements.
Example (Creating a priority queue from variadic values)
import { Effect, Order, TxPriorityQueue } from "effect"
const program = Effect.gen(function*() {
const pq = yield* TxPriorityQueue.make(Order.Number)(3, 1, 2)
const first = yield* TxPriorityQueue.take(pq)
console.log(first) // 1
})constructors
Source effect/TxPriorityQueue.ts:1762 lines
export const const make: <A>(
order: Order<A>
) => (
...elements: Array<A>
) => Effect.Effect<TxPriorityQueue<A>>
Creates a TxPriorityQueue from variadic elements.
Example (Creating a priority queue from variadic values)
import { Effect, Order, TxPriorityQueue } from "effect"
const program = Effect.gen(function*() {
const pq = yield* TxPriorityQueue.make(Order.Number)(3, 1, 2)
const first = yield* TxPriorityQueue.take(pq)
console.log(first) // 1
})
make = <function (type parameter) A in <A>(order: Order<A>): (...elements: Array<A>) => Effect.Effect<TxPriorityQueue<A>>A>(order: Order<A>order: import OrderOrder<function (type parameter) A in <A>(order: Order<A>): (...elements: Array<A>) => Effect.Effect<TxPriorityQueue<A>>A>) => (...elements: A[]elements: interface Array<T>Array<function (type parameter) A in <A>(order: Order<A>): (...elements: Array<A>) => Effect.Effect<TxPriorityQueue<A>>A>): import EffectEffect.type Effect.Effect = /*unresolved*/ anyEffect<interface TxPriorityQueue<in out A>A transactional priority queue backed by a sorted Chunk.
Details
Elements are stored in ascending order according to the Order provided at
construction time. take returns the smallest element, peek observes it
without removing.
Example (Dequeuing values by priority)
import { Effect, Order, TxPriorityQueue } from "effect"
const program = Effect.gen(function*() {
const pq = yield* TxPriorityQueue.empty<number>(Order.Number)
yield* TxPriorityQueue.offer(pq, 3)
yield* TxPriorityQueue.offer(pq, 1)
yield* TxPriorityQueue.offer(pq, 2)
const first = yield* TxPriorityQueue.take(pq)
console.log(first) // 1
})
TxPriorityQueue<function (type parameter) A in <A>(order: Order<A>): (...elements: Array<A>) => Effect.Effect<TxPriorityQueue<A>>A>> =>
const fromIterable: {
<A>(order: Order<A>): (
iterable: Iterable<A>
) => Effect.Effect<TxPriorityQueue<A>>
<A>(
order: Order<A>,
iterable: Iterable<A>
): Effect.Effect<TxPriorityQueue<A>>
}
fromIterable(order: Order<A>order, elements: A[]elements)