batch method
Implementation
Stream<List<T>> batch(int size) async* {
var buffer = <T>[];
await for (final item in this) {
buffer.add(item);
if (buffer.length >= size) {
yield List.unmodifiable(buffer);
buffer = [];
}
}
if (buffer.isNotEmpty) yield List.unmodifiable(buffer);
}