readerStream function
Turns an AsyncRead into a chunked stream.
Implementation
Stream<Uint8List> readerStream(
AsyncRead reader, {
int bufferSize = 64 * 1024,
}) async* {
if (bufferSize <= 0) throw RangeError.value(bufferSize, 'bufferSize');
while (true) {
final buffer = Uint8List(bufferSize);
final dst = ReadBuf(buffer);
final result = await reader.readInto(dst);
if (dst.filled > 0) {
yield Uint8List.sublistView(buffer, 0, dst.filled);
}
if (result.eof && dst.filled == 0) break;
if (dst.filled == 0) break;
}
}