/**
* @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)
}