feature. See also
. The project being documented here (as the example) is the Zig library itself.
Pdb.InlineSiteSymIterator
pub const InlineSiteSymIterator = struct
File
Code
pub const InlineSiteSymIterator = struct {
module_index: usize,
offset: usize,
end: usize,
const empty: InlineSiteSymIterator = .{
.module_index = 0,
.offset = 0,
.end = 0,
};
pub fn next(iter: *InlineSiteSymIterator, module: *Module) ?*align(1) pdb.InlineSiteSym {
while (iter.offset < iter.end) {
const inline_prefix: *align(1) pdb.RecordPrefix = @ptrCast(&module.symbols[iter.offset]);
const end = iter.offset + inline_prefix.record_len + @sizeOf(u16);
if (end > iter.end) return null;
defer iter.offset = end;
switch (inline_prefix.record_kind) {
.lproc32,
.lproc32_st,
.gproc32,
.gproc32_st,
.lproc32_id,
.gproc32_id,
.lproc32_dpc,
.lproc32_dpc_id,
=> {
const skip: *align(1) pdb.ProcSym = @ptrCast(inline_prefix);
iter.offset = skip.end;
},
.inlinesite,
.inlinesite2,
=> return @ptrCast(inline_prefix),
else => {},
}
}
return null;
}
}