import type { SinkEndReason } from "@effect/core/stream/Stream/SinkEndReason" export type HandoffSignal = Emit | Halt | End export class Emit { readonly _tag = "Emit" constructor(readonly elements: Chunk) {} } export class Halt { readonly _tag = "Halt" constructor(readonly error: Cause) {} } export class End { readonly _tag = "End" constructor(readonly reason: SinkEndReason) {} } /** * @tsplus type effect/core/stream/Stream/HandoffSignal.Ops */ export interface HandoffSignalOps {} export const HandoffSignal: HandoffSignalOps = {} /** * @tsplus static effect/core/stream/Stream/HandoffSignal.Ops Emit */ export function emit(elements: Chunk): HandoffSignal { return new Emit(elements) } /** * @tsplus static effect/core/stream/Stream/HandoffSignal.Ops Halt */ export function halt(error: Cause): HandoffSignal { return new Halt(error) } /** * @tsplus static effect/core/stream/Stream/HandoffSignal.Ops End */ export function end(reason: SinkEndReason): HandoffSignal { return new End(reason) }