@ -6,3 +6,4 @@
int is_bit_set(uint8_t *set, size_t n);
void set_bit(uint8_t *set, size_t n);
void clear_bit(uint8_t *set, size_t n);
size_t next_set_bit(uint8_t *set, size_t len);
@ -30,3 +30,15 @@ void clear_bit(uint8_t *set, size_t n)
*word &= ~mask;
}
size_t next_set_bit(uint8_t *set, size_t len)
{
size_t n;
for (n = 0; n < len; ++n) {
if (is_bit_set(set, n))
return n;
return SIZE_MAX;