| 608 | |
| 609 | /** @internal */ |
| 610 | const dropWhileReader = <In>( |
| 611 | predicate: Predicate<In> |
| 612 | ): Channel.Channel<Chunk.Chunk<In>, Chunk.Chunk<In>, never, never, unknown, unknown> => |
| 613 | core.readWith({ |
| 614 | onInput: (input: Chunk.Chunk<In>) => { |
| 615 | const out = pipe(input, Chunk.dropWhile(predicate)) |
| 616 | if (Chunk.isEmpty(out)) { |
| 617 | return dropWhileReader(predicate) |
| 618 | } |
| 619 | return pipe(core.write(out), channel.zipRight(channel.identityChannel<Chunk.Chunk<In>, never, unknown>())) |
| 620 | }, |
| 621 | onFailure: core.fail, |
| 622 | onDone: core.succeedNow |
| 623 | }) |
| 624 | |
| 625 | /** @internal */ |
| 626 | export const dropWhileEffect = <In, E, R>( |