diff --git a/Dalamud/Game/Text/Evaluator/SeStringEvaluator.cs b/Dalamud/Game/Text/Evaluator/SeStringEvaluator.cs
index 58bcdbd0b..63a09a0a5 100644
--- a/Dalamud/Game/Text/Evaluator/SeStringEvaluator.cs
+++ b/Dalamud/Game/Text/Evaluator/SeStringEvaluator.cs
@@ -245,154 +245,67 @@ internal class SeStringEvaluator : IServiceType, ISeStringEvaluator
// if (context.HandlePayload(payload, in context))
// return true;
- switch (payload.MacroCode)
+ return payload.MacroCode switch
{
- case MacroCode.SetResetTime:
- return this.TryResolveSetResetTime(in context, payload);
-
- case MacroCode.SetTime:
- return this.TryResolveSetTime(in context, payload);
-
- case MacroCode.If:
- return this.TryResolveIf(in context, payload);
-
- case MacroCode.Switch:
- return this.TryResolveSwitch(in context, payload);
-
- case MacroCode.SwitchPlatform:
- return this.TryResolveSwitchPlatform(in context, payload);
-
- case MacroCode.PcName:
- return this.TryResolvePcName(in context, payload);
-
- case MacroCode.IfPcGender:
- return this.TryResolveIfPcGender(in context, payload);
-
- case MacroCode.IfPcName:
- return this.TryResolveIfPcName(in context, payload);
-
- // case MacroCode.Josa:
- // case MacroCode.Josaro:
-
- case MacroCode.IfSelf:
- return this.TryResolveIfSelf(in context, payload);
-
- // case MacroCode.NewLine: // pass through
- // case MacroCode.Wait: // pass through
- // case MacroCode.Icon: // pass through
-
- case MacroCode.Color:
- return this.TryResolveColor(in context, payload);
-
- case MacroCode.EdgeColor:
- return this.TryResolveEdgeColor(in context, payload);
-
- case MacroCode.ShadowColor:
- return this.TryResolveShadowColor(in context, payload);
-
- // case MacroCode.SoftHyphen: // pass through
- // case MacroCode.Key:
- // case MacroCode.Scale:
-
- case MacroCode.Bold:
- return this.TryResolveBold(in context, payload);
-
- case MacroCode.Italic:
- return this.TryResolveItalic(in context, payload);
-
- // case MacroCode.Edge:
- // case MacroCode.Shadow:
- // case MacroCode.NonBreakingSpace: // pass through
- // case MacroCode.Icon2: // pass through
- // case MacroCode.Hyphen: // pass through
-
- case MacroCode.Num:
- return this.TryResolveNum(in context, payload);
-
- case MacroCode.Hex:
- return this.TryResolveHex(in context, payload);
-
- case MacroCode.Kilo:
- return this.TryResolveKilo(in context, payload);
-
- // case MacroCode.Byte:
-
- case MacroCode.Sec:
- return this.TryResolveSec(in context, payload);
-
- // case MacroCode.Time:
-
- case MacroCode.Float:
- return this.TryResolveFloat(in context, payload);
-
- // case MacroCode.Link: // pass through
-
- case MacroCode.Sheet:
- return this.TryResolveSheet(in context, payload);
-
- case MacroCode.SheetSub:
- return this.TryResolveSheetSub(in context, payload);
-
- case MacroCode.String:
- return this.TryResolveString(in context, payload);
-
- case MacroCode.Caps:
- return this.TryResolveCaps(in context, payload);
-
- case MacroCode.Head:
- return this.TryResolveHead(in context, payload);
-
- case MacroCode.Split:
- return this.TryResolveSplit(in context, payload);
-
- case MacroCode.HeadAll:
- return this.TryResolveHeadAll(in context, payload);
-
- case MacroCode.Fixed:
- return this.TryResolveFixed(in context, payload);
-
- case MacroCode.Lower:
- return this.TryResolveLower(in context, payload);
-
- case MacroCode.JaNoun:
- return this.TryResolveNoun(ClientLanguage.Japanese, in context, payload);
-
- case MacroCode.EnNoun:
- return this.TryResolveNoun(ClientLanguage.English, in context, payload);
-
- case MacroCode.DeNoun:
- return this.TryResolveNoun(ClientLanguage.German, in context, payload);
-
- case MacroCode.FrNoun:
- return this.TryResolveNoun(ClientLanguage.French, in context, payload);
-
- // case MacroCode.ChNoun:
-
- case MacroCode.LowerHead:
- return this.TryResolveLowerHead(in context, payload);
-
- case MacroCode.ColorType:
- return this.TryResolveColorType(in context, payload);
-
- case MacroCode.EdgeColorType:
- return this.TryResolveEdgeColorType(in context, payload);
-
- // case MacroCode.Ruby:
-
- case MacroCode.Digit:
- return this.TryResolveDigit(in context, payload);
-
- case MacroCode.Ordinal:
- return this.TryResolveOrdinal(in context, payload);
-
- // case MacroCode.Sound: // pass through
-
- case MacroCode.LevelPos:
- return this.TryResolveLevelPos(in context, payload);
-
- default:
- return false;
- }
+ MacroCode.SetResetTime => this.TryResolveSetResetTime(in context, payload),
+ MacroCode.SetTime => this.TryResolveSetTime(in context, payload),
+ MacroCode.If => this.TryResolveIf(in context, payload),
+ MacroCode.Switch => this.TryResolveSwitch(in context, payload),
+ MacroCode.SwitchPlatform => this.TryResolveSwitchPlatform(in context, payload),
+ MacroCode.PcName => this.TryResolvePcName(in context, payload),
+ MacroCode.IfPcGender => this.TryResolveIfPcGender(in context, payload),
+ MacroCode.IfPcName => this.TryResolveIfPcName(in context, payload),
+ // MacroCode.Josa
+ // MacroCode.Josaro
+ MacroCode.IfSelf => this.TryResolveIfSelf(in context, payload),
+ // MacroCode.NewLine (pass through)
+ // MacroCode.Wait (pass through)
+ // MacroCode.Icon (pass through)
+ MacroCode.Color => this.TryResolveColor(in context, payload),
+ MacroCode.EdgeColor => this.TryResolveEdgeColor(in context, payload),
+ MacroCode.ShadowColor => this.TryResolveShadowColor(in context, payload),
+ // MacroCode.SoftHyphen (pass through)
+ // MacroCode.Key
+ // MacroCode.Scale
+ MacroCode.Bold => this.TryResolveBold(in context, payload),
+ MacroCode.Italic => this.TryResolveItalic(in context, payload),
+ // MacroCode.Edge
+ // MacroCode.Shadow
+ // MacroCode.NonBreakingSpace (pass through)
+ // MacroCode.Icon2 (pass through)
+ // MacroCode.Hyphen (pass through)
+ MacroCode.Num => this.TryResolveNum(in context, payload),
+ MacroCode.Hex => this.TryResolveHex(in context, payload),
+ MacroCode.Kilo => this.TryResolveKilo(in context, payload),
+ // MacroCode.Byte
+ MacroCode.Sec => this.TryResolveSec(in context, payload),
+ // MacroCode.Time
+ MacroCode.Float => this.TryResolveFloat(in context, payload),
+ // MacroCode.Link (pass through)
+ MacroCode.Sheet => this.TryResolveSheet(in context, payload),
+ MacroCode.SheetSub => this.TryResolveSheetSub(in context, payload),
+ MacroCode.String => this.TryResolveString(in context, payload),
+ MacroCode.Caps => this.TryResolveCaps(in context, payload),
+ MacroCode.Head => this.TryResolveHead(in context, payload),
+ MacroCode.Split => this.TryResolveSplit(in context, payload),
+ MacroCode.HeadAll => this.TryResolveHeadAll(in context, payload),
+ MacroCode.Fixed => this.TryResolveFixed(in context, payload),
+ MacroCode.Lower => this.TryResolveLower(in context, payload),
+ MacroCode.JaNoun => this.TryResolveNoun(ClientLanguage.Japanese, in context, payload),
+ MacroCode.EnNoun => this.TryResolveNoun(ClientLanguage.English, in context, payload),
+ MacroCode.DeNoun => this.TryResolveNoun(ClientLanguage.German, in context, payload),
+ MacroCode.FrNoun => this.TryResolveNoun(ClientLanguage.French, in context, payload),
+ // MacroCode.ChNoun
+ MacroCode.LowerHead => this.TryResolveLowerHead(in context, payload),
+ MacroCode.ColorType => this.TryResolveColorType(in context, payload),
+ MacroCode.EdgeColorType => this.TryResolveEdgeColorType(in context, payload),
+ // MacroCode.Ruby
+ MacroCode.Digit => this.TryResolveDigit(in context, payload),
+ MacroCode.Ordinal => this.TryResolveOrdinal(in context, payload),
+ // MacroCode.Sound (pass through)
+ MacroCode.LevelPos => this.TryResolveLevelPos(in context, payload),
+ _ => false,
+ };
}
private unsafe bool TryResolveSetResetTime(in SeStringContext context, in ReadOnlySePayloadSpan payload)
diff --git a/Dalamud/Interface/Style/StyleModel.cs b/Dalamud/Interface/Style/StyleModel.cs
index 926317c51..99dba204d 100644
--- a/Dalamud/Interface/Style/StyleModel.cs
+++ b/Dalamud/Interface/Style/StyleModel.cs
@@ -101,16 +101,11 @@ public abstract class StyleModel
/// Thrown when the version of the style model is unknown.
public string Serialize()
{
- string prefix;
- switch (this)
+ var prefix = this switch
{
- case StyleModelV1:
- prefix = StyleModelV1.SerializedPrefix;
- break;
- default:
- throw new ArgumentOutOfRangeException();
- }
-
+ StyleModelV1 => StyleModelV1.SerializedPrefix,
+ _ => throw new ArgumentOutOfRangeException(),
+ };
return prefix + Convert.ToBase64String(Util.CompressString(JsonConvert.SerializeObject(this)));
}
diff --git a/Dalamud/Plugin/Internal/Profiles/ProfileModel.cs b/Dalamud/Plugin/Internal/Profiles/ProfileModel.cs
index e3d9e2955..87dab7beb 100644
--- a/Dalamud/Plugin/Internal/Profiles/ProfileModel.cs
+++ b/Dalamud/Plugin/Internal/Profiles/ProfileModel.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using System.Reflection;
using Dalamud.Utility;
@@ -47,15 +47,11 @@ public abstract class ProfileModel
/// Thrown when an unsupported model is serialized.
public string SerializeForShare()
{
- string prefix;
- switch (this)
+ var prefix = this switch
{
- case ProfileModelV1:
- prefix = ProfileModelV1.SerializedPrefix;
- break;
- default:
- throw new ArgumentOutOfRangeException();
- }
+ ProfileModelV1 => ProfileModelV1.SerializedPrefix,
+ _ => throw new ArgumentOutOfRangeException(),
+ };
// HACK: Just filter the ID for now, we should split the sharing + saving model
var serialized = JsonConvert.SerializeObject(this, new JsonSerializerSettings()
diff --git a/Dalamud/Utility/FuzzyMatcher.cs b/Dalamud/Utility/FuzzyMatcher.cs
index 03723da89..d8b881300 100644
--- a/Dalamud/Utility/FuzzyMatcher.cs
+++ b/Dalamud/Utility/FuzzyMatcher.cs
@@ -1,4 +1,4 @@
-#define BORDER_MATCHING
+#define BORDER_MATCHING
using System.Collections.Generic;
using System.Runtime.CompilerServices;
@@ -32,18 +32,12 @@ internal readonly ref struct FuzzyMatcher
this.needleFinalPosition = this.needleSpan.Length - 1;
this.mode = matchMode;
- switch (matchMode)
+ this.needleSegments = matchMode switch
{
- case MatchMode.FuzzyParts:
- this.needleSegments = FindNeedleSegments(this.needleSpan);
- break;
- case MatchMode.Fuzzy:
- case MatchMode.Simple:
- this.needleSegments = EmptySegArray;
- break;
- default:
- throw new ArgumentOutOfRangeException(nameof(matchMode), matchMode, null);
- }
+ MatchMode.FuzzyParts => FindNeedleSegments(this.needleSpan),
+ MatchMode.Fuzzy or MatchMode.Simple => EmptySegArray,
+ _ => throw new ArgumentOutOfRangeException(nameof(matchMode), matchMode, null),
+ };
}
private static (int Start, int End)[] FindNeedleSegments(ReadOnlySpan span)
diff --git a/Dalamud/Utility/TerraFxCom/TerraFxComInterfaceExtensions.cs b/Dalamud/Utility/TerraFxCom/TerraFxComInterfaceExtensions.cs
index f9252839f..5599a3cfb 100644
--- a/Dalamud/Utility/TerraFxCom/TerraFxComInterfaceExtensions.cs
+++ b/Dalamud/Utility/TerraFxCom/TerraFxComInterfaceExtensions.cs
@@ -51,38 +51,22 @@ internal static unsafe partial class TerraFxComInterfaceExtensions
throw new ArgumentOutOfRangeException(nameof(mode), mode, null);
}
- switch (access)
+ grfMode |= access switch
{
- case FileAccess.Read:
- grfMode |= STGM.STGM_READ;
- break;
- case FileAccess.Write:
- grfMode |= STGM.STGM_WRITE;
- break;
- case FileAccess.ReadWrite:
- grfMode |= STGM.STGM_READWRITE;
- break;
- default:
- throw new ArgumentOutOfRangeException(nameof(access), access, null);
- }
+ FileAccess.Read => STGM.STGM_READ,
+ FileAccess.Write => STGM.STGM_WRITE,
+ FileAccess.ReadWrite => (uint)STGM.STGM_READWRITE,
+ _ => throw new ArgumentOutOfRangeException(nameof(access), access, null),
+ };
- switch (share)
+ grfMode |= share switch
{
- case FileShare.None:
- grfMode |= STGM.STGM_SHARE_EXCLUSIVE;
- break;
- case FileShare.Read:
- grfMode |= STGM.STGM_SHARE_DENY_WRITE;
- break;
- case FileShare.Write:
- grfMode |= STGM.STGM_SHARE_DENY_READ;
- break;
- case FileShare.ReadWrite:
- grfMode |= STGM.STGM_SHARE_DENY_NONE;
- break;
- default:
- throw new NotSupportedException($"Only ${FileShare.Read} and ${FileShare.Write} are supported.");
- }
+ FileShare.None => STGM.STGM_SHARE_EXCLUSIVE,
+ FileShare.Read => STGM.STGM_SHARE_DENY_WRITE,
+ FileShare.Write => STGM.STGM_SHARE_DENY_READ,
+ FileShare.ReadWrite => (uint)STGM.STGM_SHARE_DENY_NONE,
+ _ => throw new NotSupportedException($"Only ${FileShare.Read} and ${FileShare.Write} are supported."),
+ };
using var stream = default(ComPtr);
fixed (char* pPath = path)