<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="9.0.5" />

BitMapper

struct BitMapper
namespace System.Diagnostics { internal ref struct BitMapper { private int _maxIndex; private Span<ulong> _bitMap; public int MaxIndex => _maxIndex; public BitMapper(Span<ulong> bitMap) { _bitMap = bitMap; _bitMap.Clear(); _maxIndex = bitMap.Length * 8 * 8; } private static void GetIndexAndMask(int index, out int bitIndex, out ulong mask) { bitIndex = index >> 6; int num = index & 63; mask = (ulong)(1 << num); } public bool SetBit(int index) { GetIndexAndMask(index, out int bitIndex, out ulong mask); ulong num = _bitMap[bitIndex]; _bitMap[bitIndex] = (num | mask); return true; } public bool IsSet(int index) { GetIndexAndMask(index, out int bitIndex, out ulong mask); return (_bitMap[bitIndex] & mask) != 0; } } }