dvPackFiles function

Uint8List dvPackFiles(
  1. Map<String, List<int>> files
)

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()));
}