| 1898 | |
| 1899 | /** @internal */ |
| 1900 | export const take = <In>(n: number): Sink.Sink<Chunk.Chunk<In>, In, In> => |
| 1901 | pipe( |
| 1902 | foldChunks<Chunk.Chunk<In>, In>( |
| 1903 | Chunk.empty(), |
| 1904 | (chunk) => chunk.length < n, |
| 1905 | (acc, chunk) => pipe(acc, Chunk.appendAll(chunk)) |
| 1906 | ), |
| 1907 | flatMap((acc) => { |
| 1908 | const [taken, leftover] = pipe(acc, Chunk.splitAt(n)) |
| 1909 | return new SinkImpl(pipe(core.write(leftover), channel.zipRight(core.succeedNow(taken)))) |
| 1910 | }) |
| 1911 | ) |
| 1912 | |
| 1913 | /** @internal */ |
| 1914 | export const toChannel = <A, In, L, E, R>( |