import { InternalTDequeue } from "@effect/core/stm/THub/operations/_internal/InternalTDequeue" /** * @tsplus static effect/core/stm/THub/TDequeue.Ops make * @tsplus static effect/core/stm/THub/TDequeue.Ops __call */ export function make( hubSize: TRef, publisherHead: TRef>>, publisherTail: TRef>>, requestedCapacity: number, subscriberCount: TRef, subscribers: TRef>>>> ): STM> { return Do(($) => { const currentPublisherTail = $(publisherTail.get) const subscriberHead = $(TRef.make(currentPublisherTail)) const currentSubscriberCount = $(subscriberCount.get) const currentSubscribers = $(subscribers.get) $(subscriberCount.set(currentSubscriberCount + 1)) $(subscribers.set(currentSubscribers + subscriberHead)) return new InternalTDequeue( hubSize, publisherHead, requestedCapacity, subscriberHead, subscriberCount, subscribers ) }) }