Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › compress › lzma2 › Decode › decompress Public Function decompress Doc Source Public Function std.compress.lzma2.Decode.decompress
pub fn decompress (d : *Decode , reader : *Reader , allocating : *Writer .Allocating ) !u64 Params File compress/lzma2.zig: 121
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143 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 ;
}
Returns how many compressed bytes were consumed.