setValue
Changes the value of the specified bit of the bit set to match the passed boolean.
Function parameters
Parameters
- self:*Self
- index:usize
- value:bool
A bit set with runtime-known size, backed by an allocated slice
Types
- DynamicBitSetUnmanaged
- A bit set with runtime-known size, backed by an allocated slice
- DynamicBitSet
- A bit set with runtime-known size, backed by an allocated slice
- IteratorOptions
- Options for configuring an iterator over a bit set
- Range
- A range of indices within a bitset.
Returns the optimal static bit set type for the specified number
Functions
- StaticBitSet
- Returns the optimal static bit set type for the specified number
- IntegerBitSet
- A bit set with static size, which is backed by a single integer.
- ArrayBitSet
- A bit set with static size, which is backed by an array of usize.
Source
Implementation
pub fn setValue(self: *Self, index: usize, value: bool) void {
assert(index < bit_length);
if (num_masks == 0) return; // doesn't compile in this case
const bit = maskBit(index);
const mask_index = maskIndex(index);
const new_bit = bit & std.math.boolMask(MaskInt, value);
self.masks[mask_index] = (self.masks[mask_index] & ~bit) | new_bit;
}