This commit is contained in:
2025-05-13 03:08:33 +03:00
parent f06ea6c9f0
commit 6e30658119
101 changed files with 12402 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
namespace SourceFormatParser.Common
{
public static class FlagsUtils
{
public static T[] getFlags<T>(int f) where T : Enum
{
T flag = (T)Enum.Parse(typeof(T), f.ToString());
var vals = Enum.GetValues(typeof(T));
int vallen = vals.Length;
List<T> ret = new List<T>();
for (int i = 0; i < vallen; i++)
{
if (f != 0 && (int)vals.GetValue(i) == 0) continue;
T val = (T)vals.GetValue(i);
if (flag.HasFlag(val)) ret.Add(val);
}
return ret.ToArray();
}
public static T[] getFlags<T>(uint f) where T : Enum
{
T flag = (T)Enum.Parse(typeof(T), f.ToString());
var vals = Enum.GetValues(typeof(T));
int vallen = vals.Length;
List<T> ret = new List<T>();
for (int i = 0; i < vallen; i++)
{
if (f != 0 && (int)vals.GetValue(i) == 0) continue;
T val = (T)vals.GetValue(i);
if (flag.HasFlag(val)) ret.Add(val);
}
return ret.ToArray();
}
}
}