Stream<List<E>> chunk(int chunkSize) async* { final len = length; for (var i = 0; i < len; i += chunkSize) { final size = i + chunkSize; yield sublist(i, size > len ? len : size); } }