encode method
Implementation
List<int> encode(List<int> data, {XZCheck check = XZCheck.crc64}) {
var flags = 0;
switch (check) {
case XZCheck.none:
break;
case XZCheck.crc32:
flags |= 0x1;
break;
case XZCheck.crc64:
flags |= 0x4;
break;
case XZCheck.sha256:
flags |= 0xa;
break;
}
final output = OutputStream();
_writeStreamHeader(output, flags: flags);
var records = <_XZBlockSize>[];
if (data.isNotEmpty) {
var compressedLength = _writeBlock(output, data, streamFlags: flags);
records.add(_XZBlockSize(compressedLength, data.length));
}
var indexStart = output.length;
_writeStreamIndex(output, records: records);
var indexSize = output.length - indexStart;
_writeStreamFooter(output, indexSize: indexSize, flags: flags);
return output.getBytes();
}