| 433 | |
| 434 | /** @internal */ |
| 435 | export const drain = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>( |
| 436 | self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env> |
| 437 | ): Channel.Channel<never, InElem, OutErr, InErr, OutDone, InDone, Env> => { |
| 438 | const drainer: Channel.Channel<never, OutElem, OutErr, OutErr, OutDone, OutDone, Env> = core |
| 439 | .readWithCause({ |
| 440 | onInput: () => drainer, |
| 441 | onFailure: core.failCause, |
| 442 | onDone: core.succeed |
| 443 | }) |
| 444 | return core.pipeTo(self, drainer) |
| 445 | } |
| 446 | |
| 447 | /** @internal */ |
| 448 | export const emitCollect = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>( |