List<List<T>> chunk(int chunkSize) { final chunks = <List<T>>[]; for (var i = 0; i < length; i += chunkSize) { chunks.add(sublist(i, i + chunkSize > length ? length : i + chunkSize)); } return chunks; }