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 › zstd › Decompress › LiteralsSection › HuffmanTree › decodeFse Private Function decodeFse Doc Source Private Function std.compress.zstd.Decompress.LiteralsSection.HuffmanTree.decodeFse
fn decodeFse (
in : *Reader ,
remaining : *Limit ,
compressed_size : usize ,
) HuffmanTree .DecodeError !HuffmanTree Params File compress/zstd/Decompress.zig: 1135
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150 fn decodeFse (
in : *Reader ,
remaining : *Limit ,
compressed_size : usize ,
) HuffmanTree .DecodeError !HuffmanTree {
var weights : [256 ]u4 = undefined ;
remaining .* = remaining .subtract (compressed_size ) orelse return error .EndOfStream ;
const compressed_buffer = try in .take (compressed_size );
var bit_reader : BitReader = .{ .bytes = compressed_buffer };
var entries : [1 << 6 ]Table .Fse = undefined ;
const table_size = try Table .decode (&bit_reader , 256 , 6 , &entries );
const accuracy_log = std .math .log2_int_ceil (usize , table_size );
const remaining_buffer = bit_reader .bytes [bit_reader .index ..];
const symbol_count = try assignWeights (remaining_buffer , accuracy_log , &entries , &weights );
return build (&weights , symbol_count );
}