fn readVbr(bc: *BitcodeReader, comptime T: type, bits: u7) !T
fn readVbr(bc: *BitcodeReader, comptime T: type, bits: u7) !T { const chunk_bits: u6 = @intCast(bits - 1); const chunk_msb = @as(u64, 1) << chunk_bits; var result: u64 = 0; var shift: u6 = 0; while (true) { const chunk = try bc.readFixed(u64, bits); result |= (chunk & (chunk_msb - 1)) << shift; if (chunk & chunk_msb == 0) break; shift += chunk_bits; } return @intCast(result); }