<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="9.0.0-rc.1.24431.7" />

BitMapper

struct BitMapper
using System.Runtime.CompilerServices; namespace System.Diagnostics { [CompilerFeatureRequired("RefStructs")] internal ref struct BitMapper { private int _maxIndex; private Span<ulong> _bitMap; 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; } } }