/** * @tsplus type effect/core/stream/Channel/UpstreamPullRequest */ export type UpstreamPullRequest = Pulled | NoUpstream export class Pulled { readonly _tag = "Pulled" constructor(readonly value: A) {} } export class NoUpstream { readonly _tag = "NoUpstream" constructor(readonly activeDownstreamCount: number) {} } /** * @tsplus type effect/core/stream/Channel/UpstreamPullRequest.Ops */ export interface UpstreamPullRequestOps {} export const UpstreamPullRequest: UpstreamPullRequestOps = {} /** * @tsplus unify effect/core/stream/Channel/UpstreamPullRequest */ export function unifyUpstreamPullRequest>( self: X ): UpstreamPullRequest<[X] extends [UpstreamPullRequest] ? AX : never> { return self } /** * @tsplus static effect/core/stream/Channel/UpstreamPullRequest.Ops Pulled */ export function pulled(value: A): UpstreamPullRequest { return new Pulled(value) } /** * @tsplus static effect/core/stream/Channel/UpstreamPullRequest.Ops NoUpstream */ export function noUpstream(activeDownstreamCount: number): UpstreamPullRequest { return new NoUpstream(activeDownstreamCount) }