chunks method
Splits the iterable into chunks of size size.
Implementation
List<List<E>> chunks(int size) {
if (size <= 0) throw ArgumentError('Size must be positive');
final chunks = <List<E>>[];
final iterator = this.iterator;
while (iterator.moveNext()) {
final chunk = <E>[iterator.current];
for (var i = 1; i < size && iterator.moveNext(); i++) {
chunk.add(iterator.current);
}
chunks.add(chunk);
}
return chunks;
}