import { Strategy } from "@effect/core/io/Queue/operations/strategy" /** * Makes a new bounded queue with sliding strategy. When the capacity of the * queue is reached, new elements will be added and the old elements will be * dropped. * * **Note**: When possible use only power of 2 capacities; this will provide * better performance by utilising an optimised version of the underlying * `RingBuffer`. * * @tsplus static effect/core/io/Queue.Ops sliding */ export function sliding( requestedCapacity: number ): Effect> { return Effect.sync(MutableQueue.bounded(requestedCapacity)).flatMap((queue) => Queue.create(queue, Strategy.Sliding()) ) }