Function toggleFirstSet [src]

Finds the index of the first set bit, and unsets it. If no bits are set, returns null.

Prototype

pub fn toggleFirstSet(self: *Self) ?usize

Parameters

self: *Self

Source

pub fn toggleFirstSet(self: *Self) ?usize { var offset: usize = 0; var mask = self.masks; while (offset < self.bit_length) { if (mask[0] != 0) break; mask += 1; offset += @bitSizeOf(MaskInt); } else return null; const index = @ctz(mask[0]); mask[0] &= (mask[0] - 1); return offset + index; }