From 09d13104bee07099c53f6df75e6c619793f43f18 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 3 Nov 2023 19:49:39 -0700 Subject: [PATCH] std.BitSet: add setAll and unsetAll methods --- lib/std/bit_set.zig | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/std/bit_set.zig b/lib/std/bit_set.zig index d87c1d26f6..61aca5f9fd 100644 --- a/lib/std/bit_set.zig +++ b/lib/std/bit_set.zig @@ -859,6 +859,18 @@ pub const DynamicBitSetUnmanaged = struct { self.masks[maskIndex(index)] &= ~maskBit(index); } + /// Set all bits to 0. + pub fn unsetAll(self: *Self) void { + const masks_len = numMasks(self.bit_length); + @memset(self.masks[0..masks_len], 0); + } + + /// Set all bits to 1. + pub fn setAll(self: *Self) void { + const masks_len = numMasks(self.bit_length); + @memset(self.masks[0..masks_len], std.math.maxInt(MaskInt)); + } + /// Flips a specific bit in the bit set pub fn toggle(self: *Self, index: usize) void { assert(index < self.bit_length);