chunkMap<K, V> method
Chunks a large map into smaller parts
Implementation
List<Map<K, V>> chunkMap<K, V>(Map<K, V> data) {
final chunks = <Map<K, V>>[];
// Convert the map to entries
final entries = data.entries.toList();
// Calculate the chunk size in items
// Assume each item is roughly 100 bytes
final itemsPerChunk = (chunkSize / 100).ceil();
// Calculate the number of chunks
final numChunks = (entries.length / itemsPerChunk).ceil();
// Split the data into chunks
for (int i = 0; i < numChunks; i++) {
final start = i * itemsPerChunk;
final end = (i + 1) * itemsPerChunk;
final chunk = entries.sublist(
start,
end > entries.length ? entries.length : end,
);
final chunkMap = Map<K, V>.fromEntries(chunk);
chunks.add(chunkMap);
}
logger?.info(
'Chunked map of ${data.length} entries into ${chunks.length} chunks',
);
return chunks;
}