dvUnpackFiles function

Map<String, List<int>> dvUnpackFiles(
  1. List<int> packed
)

The files dvPackFiles packed.

Implementation

Map<String, List<int>> dvUnpackFiles(List<int> packed) {
  final Uint8List raw = Uint8List.fromList(gzip.decode(packed));
  final ByteData data = ByteData.sublistView(raw);
  final Map<String, List<int>> files = <String, List<int>>{};
  int at = 0;
  while (at < raw.length) {
    final int nameLength = data.getUint32(at, Endian.little);
    at += 4;
    final String path = utf8.decode(raw.sublist(at, at + nameLength));
    at += nameLength;
    final int length = data.getUint64(at, Endian.little);
    at += 8;
    files[path] = Uint8List.sublistView(raw, at, at + length);
    at += length;
  }
  return files;
}