/** * @tsplus type effect/core/stream/Channel/UpstreamPullStrategy */ export type UpstreamPullStrategy = PullAfterNext | PullAfterAllEnqueued export class PullAfterNext { readonly _tag = "PullAfterNext" constructor(readonly emitSeparator: Maybe) {} } export class PullAfterAllEnqueued { readonly _tag = "PullAfterAllEnqueued" constructor(readonly emitSeparator: Maybe) {} } /** * @tsplus type effect/core/stream/Channel/UpstreamPullStrategy.Ops */ export interface UpstreamPullStrategyOps {} export const UpstreamPullStrategy: UpstreamPullStrategyOps = {} /** * @tsplus unify effect/core/stream/Channel/UpstreamPullStrategy */ export function unifyUpstreamPullStrategy>( self: X ): UpstreamPullStrategy<[X] extends [UpstreamPullStrategy] ? AX : never> { return self } /** * @tsplus static effect/core/stream/Channel/UpstreamPullStrategy.Ops PullAfterNext */ export function pullAfterNext(emitSeparator: Maybe): UpstreamPullStrategy { return new PullAfterNext(emitSeparator) } /** * @tsplus static effect/core/stream/Channel/UpstreamPullStrategy.Ops PullAfterAllEnqueued */ export function pullAfterAllEnqueued( emitSeparator: Maybe ): UpstreamPullStrategy { return new PullAfterAllEnqueued(emitSeparator) }