pub fn query(self: HuffmanTree, index: usize, prefix: u16) error self: HuffmanTreeindex: usizeprefix: u161083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094 pub fn query(self: HuffmanTree, index: usize, prefix: u16) error{HuffmanTreeIncomplete}!Result {
var node = self.nodes[index];
const weight = node.weight;
var i: usize = index;
while (node.weight == weight) {
if (node.prefix == prefix) return .{ .symbol = node.symbol };
if (i == 0) return error.HuffmanTreeIncomplete;
i -= 1;
node = self.nodes[i];
}
return .{ .index = i };
}