fn FieldIterator(comptime T: type) type len: usizemetadata: [*]const Metadataitems: [*]Tpub fn next(self: *@This()) ?*T664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684 fn FieldIterator(comptime T: type) type {
return struct {
len: usize,
metadata: [*]const Metadata,
items: [*]T,
pub fn next(self: *@This()) ?*T {
while (self.len > 0) {
self.len -= 1;
const used = self.metadata[0].isUsed();
const item = &self.items[0];
self.metadata += 1;
self.items += 1;
if (used) {
return item;
}
}
return null;
}
};
}