mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-19 08:30:25 +02:00
Fix some Enum methods
This commit is contained in:
parent
1883b7378a
commit
a33cf04aa1
1 changed files with 7 additions and 8 deletions
|
@ -9,7 +9,8 @@ namespace System
|
||||||
{
|
{
|
||||||
for (var field in type.GetFields())
|
for (var field in type.GetFields())
|
||||||
{
|
{
|
||||||
if (field.[Friend]mFieldData.[Friend]mData == iVal)
|
if (field.[Friend]mFieldData.mFlags.HasFlag(.EnumCase) &&
|
||||||
|
field.[Friend]mFieldData.[Friend]mData == iVal)
|
||||||
{
|
{
|
||||||
strBuffer.Append(field.Name);
|
strBuffer.Append(field.Name);
|
||||||
return;
|
return;
|
||||||
|
@ -21,11 +22,10 @@ namespace System
|
||||||
|
|
||||||
public static Result<T> Parse<T>(StringView str, bool ignoreCase = false) where T : enum
|
public static Result<T> Parse<T>(StringView str, bool ignoreCase = false) where T : enum
|
||||||
{
|
{
|
||||||
var typeInst = (TypeInstance)typeof(T);
|
for (var (name, data) in GetEnumerator<T>())
|
||||||
for (var field in typeInst.GetFields())
|
|
||||||
{
|
{
|
||||||
if (str.Equals(field.[Friend]mFieldData.mName, ignoreCase))
|
if (str.Equals(name, ignoreCase))
|
||||||
return .Ok(*((T*)(&field.[Friend]mFieldData.mData)));
|
return .Ok(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return .Err;
|
return .Err;
|
||||||
|
@ -34,10 +34,9 @@ namespace System
|
||||||
public static bool IsDefined<T>(T value)
|
public static bool IsDefined<T>(T value)
|
||||||
where T : enum
|
where T : enum
|
||||||
{
|
{
|
||||||
var typeInst = (TypeInstance)typeof(T);
|
for (var data in GetValues<T>())
|
||||||
for (var field in typeInst.GetFields())
|
|
||||||
{
|
{
|
||||||
if (field.[Friend]mFieldData.[Friend]mData == (.)value)
|
if (data == (.)value)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue