in glean/rts/ownership/setu32.h [488:514]
void foreach(F&& f) const {
for (auto &block : *this) {
auto id = block.hdr.id() << 8;
switch (block.hdr.type()) {
case SetU32::Hdr::Sparse: {
for (uint32_t i = 0; i < block.hdr.sparseLen(); i++) {
f(id | block.sparse[i]);
}
break;
}
case SetU32::Hdr::Dense: {
for (uint32_t i = 0; i < 256; i++) {
if (block.dense->contains(i)) {
f(id | i);
}
}
break;
}
case SetU32::Hdr::Full: {
for (uint32_t i = 0; i < 256; i++) {
f(id | i);
}
break;
}
}
}
}