Function decompress [src]

Returns how many compressed bytes were consumed.

Prototype

pub fn decompress(d: *Decode, reader: *Reader, allocating: *Writer.Allocating) !u64

Parameters

d: *Decodereader: *Readerallocating: *Writer.Allocating

Source

pub fn decompress(d: *Decode, reader: *Reader, allocating: *Writer.Allocating) !u64 { const gpa = allocating.allocator; var accum = AccumBuffer.init(std.math.maxInt(usize)); defer accum.deinit(gpa); var n_read: u64 = 0; while (true) { const status = try reader.takeByte(); n_read += 1; switch (status) { 0 => break, 1 => n_read += try parseUncompressed(reader, allocating, &accum, true), 2 => n_read += try parseUncompressed(reader, allocating, &accum, false), else => n_read += try d.parseLzma(reader, allocating, &accum, status), } } try accum.finish(&allocating.writer); return n_read; }