dvPackFiles function
files, keyed by relative path, as one gzip-compressed section.
Implementation
Uint8List dvPackFiles(Map<String, List<int>> files) {
final BytesBuilder raw = BytesBuilder(copy: false);
final List<String> paths = files.keys.toList()..sort();
for (final String path in paths) {
final Uint8List name = utf8.encode(path);
final List<int> data = files[path]!;
raw
..add((ByteData(4)..setUint32(0, name.length, Endian.little))
.buffer
.asUint8List())
..add(name)
..add((ByteData(8)..setUint64(0, data.length, Endian.little))
.buffer
.asUint8List())
..add(data);
}
return Uint8List.fromList(gzip.encode(raw.takeBytes()));
}