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 › lzma › RangeDecoder › parseReverseBitTree Public Function parseReverseBitTree Doc Source Public Function std.compress.lzma.RangeDecoder.parseReverseBitTree
pub fn parseReverseBitTree (
self : *RangeDecoder ,
reader : *Reader ,
num_bits : u5 ,
probs : []u16 ,
offset : usize ,
n_read : *u64 ,
) !u32 Params File compress/lzma.zig: 96
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113 pub fn parseReverseBitTree (
self : *RangeDecoder ,
reader : *Reader ,
num_bits : u5 ,
probs : []u16 ,
offset : usize ,
n_read : *u64 ,
) !u32 {
var result : u32 = 0 ;
var tmp : usize = 1 ;
var i : @TypeOf (num_bits ) = 0 ;
while (i < num_bits ) : (i += 1 ) {
const bit = @intFromBool (try self .decodeBit (reader , &probs [offset + tmp ], n_read ));
tmp = (tmp << 1 ) ^ bit ;
result ^= @as (u32 , bit ) << i ;
}
return result ;
}