mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-01-04 02:47:22 +00:00
31 lines
761 B
C#
31 lines
761 B
C#
namespace QSB.Utility
|
|
{
|
|
// Stolen from here : https://stackoverflow.com/questions/3261451/using-a-bitmask-in-c-sharp
|
|
|
|
public static class FlagsHelper
|
|
{
|
|
public static bool IsSet<T>(T flags, T flag) where T : struct
|
|
{
|
|
var flagsValue = (int)(object)flags;
|
|
var flagValue = (int)(object)flag;
|
|
|
|
return (flagsValue & flagValue) != 0;
|
|
}
|
|
|
|
public static void Set<T>(ref T flags, T flag) where T : struct
|
|
{
|
|
var flagsValue = (int)(object)flags;
|
|
var flagValue = (int)(object)flag;
|
|
|
|
flags = (T)(object)(flagsValue | flagValue);
|
|
}
|
|
|
|
public static void Unset<T>(ref T flags, T flag) where T : struct
|
|
{
|
|
var flagsValue = (int)(object)flags;
|
|
var flagValue = (int)(object)flag;
|
|
|
|
flags = (T)(object)(flagsValue & ~flagValue);
|
|
}
|
|
}
|
|
} |