3#include <prim/seadMemUtil.h>
19 sead::MemUtil::copy(mBitArray, rhs.mBitArray, BitNum / 8);
24 sead::MemUtil::fillZero(mBitArray, BitNum / 8);
34 return 1 << (bit % 32);
39 return (mBitArray[bitToIndex(
static_cast<s32>(bit))] & makeMask(bit)) != 0;
42 void setBit(std::convertible_to<u32>
auto... bits)
49 mBitArray[bitToIndex(bit)] &= ~makeMask(bit);
62 mBitArray[bitToIndex(bit)] ^= makeMask(bit);
68 mBitArray[bitToIndex(
static_cast<s32>(bit))] |= makeMask(bit);
72 static_assert(BitNum % 32 == 0);
75static_assert(
sizeof(Bitfield<32>) == 4);
bool isOnBit(u32 bit) const
Definition Bitfield.h:37
void setBit_(u32 bit)
Definition Bitfield.h:66
void resetBit(u32 bit)
Definition Bitfield.h:47
static s32 bitToIndex(s32 bit)
Definition Bitfield.h:27
static u32 makeMask(u32 bit)
Definition Bitfield.h:32
u32 mBitArray[BitNum/32]
Definition Bitfield.h:73
void toggleBit(u32 bit)
Definition Bitfield.h:60
void copy(const Bitfield< BitNum > &rhs)
Definition Bitfield.h:17
void changeBit(u32 bit, bool b)
Definition Bitfield.h:52
void reset()
Definition Bitfield.h:22
void setBit(std::convertible_to< u32 > auto... bits)
Definition Bitfield.h:42
Bitfield()
Definition Bitfield.h:12