diff options
author | Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com> | 2023-06-05 00:19:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-05 01:19:46 +0200 |
commit | 306f7e93a0d99f7844c42a6e3c84ee9040f17864 (patch) | |
tree | b57c787ac8ed0aae93d31692622a12a45f96b163 | |
parent | 8954ff3af20b8b6bb3940c073b24cda1c81703d5 (diff) |
Dont Error on Invalid Enum Values (#5169)1.1.865
* Dont Error on Invalid Enum
* Use TryParse
* Log warning
-rw-r--r-- | src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs b/src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs index c0127dc4..73765129 100644 --- a/src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs +++ b/src/Ryujinx.Common/Utilities/TypedStringEnumConverter.cs @@ -1,4 +1,5 @@ #nullable enable +using Ryujinx.Common.Logging; using System; using System.Text.Json; using System.Text.Json.Serialization; @@ -18,12 +19,14 @@ namespace Ryujinx.Common.Utilities public override TEnum Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { var enumValue = reader.GetString(); - if (string.IsNullOrEmpty(enumValue)) + + if (Enum.TryParse(enumValue, out TEnum value)) { - return default; + return value; } - return Enum.Parse<TEnum>(enumValue); + Logger.Warning?.Print(LogClass.Configuration, $"Failed to parse enum value \"{enumValue}\" for {typeof(TEnum)}, using default \"{default(TEnum)}\""); + return default; } public override void Write(Utf8JsonWriter writer, TEnum value, JsonSerializerOptions options) @@ -31,4 +34,4 @@ namespace Ryujinx.Common.Utilities writer.WriteStringValue(value.ToString()); } } -} +}
\ No newline at end of file |