DoxigAlpha

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;
}