From e2f3fdd0ff519dd6dfdae33d598822a3ba7505b6 Mon Sep 17 00:00:00 2001 From: Haselnussbomber Date: Fri, 15 Aug 2025 18:11:25 +0200 Subject: [PATCH] ISeStringEvaluator: Add ReadOnlySpan support (#2370) * Add EvaluateMacroString ROS overload * Add implicit ROS to SeStringParameter cast --- Dalamud/Game/Text/Evaluator/SeStringEvaluator.cs | 9 +++++++++ Dalamud/Game/Text/Evaluator/SeStringParameter.cs | 2 ++ Dalamud/Plugin/Services/ISeStringEvaluator.cs | 9 +++++++++ 3 files changed, 20 insertions(+) diff --git a/Dalamud/Game/Text/Evaluator/SeStringEvaluator.cs b/Dalamud/Game/Text/Evaluator/SeStringEvaluator.cs index 3a504b17b..8b6a2bed8 100644 --- a/Dalamud/Game/Text/Evaluator/SeStringEvaluator.cs +++ b/Dalamud/Game/Text/Evaluator/SeStringEvaluator.cs @@ -121,6 +121,15 @@ internal class SeStringEvaluator : IServiceType, ISeStringEvaluator return this.Evaluate(ReadOnlySeString.FromMacroString(macroString).AsSpan(), localParameters, language); } + /// + public ReadOnlySeString EvaluateMacroString( + ReadOnlySpan macroString, + Span localParameters = default, + ClientLanguage? language = null) + { + return this.Evaluate(ReadOnlySeString.FromMacroString(macroString).AsSpan(), localParameters, language); + } + /// public ReadOnlySeString EvaluateFromAddon( uint addonId, diff --git a/Dalamud/Game/Text/Evaluator/SeStringParameter.cs b/Dalamud/Game/Text/Evaluator/SeStringParameter.cs index 7201179ea..1c6dd96cb 100644 --- a/Dalamud/Game/Text/Evaluator/SeStringParameter.cs +++ b/Dalamud/Game/Text/Evaluator/SeStringParameter.cs @@ -77,4 +77,6 @@ public readonly struct SeStringParameter public static implicit operator SeStringParameter(DSeString value) => new(new ReadOnlySeString(value.Encode())); public static implicit operator SeStringParameter(string value) => new(value); + + public static implicit operator SeStringParameter(ReadOnlySpan value) => new(value); } diff --git a/Dalamud/Plugin/Services/ISeStringEvaluator.cs b/Dalamud/Plugin/Services/ISeStringEvaluator.cs index 65932652e..4efc29e3e 100644 --- a/Dalamud/Plugin/Services/ISeStringEvaluator.cs +++ b/Dalamud/Plugin/Services/ISeStringEvaluator.cs @@ -38,6 +38,15 @@ public interface ISeStringEvaluator /// An evaluated . ReadOnlySeString EvaluateMacroString(string macroString, Span localParameters = default, ClientLanguage? language = null); + /// + /// Evaluates macros in a macro string. + /// + /// The macro string. + /// An optional list of local parameters. + /// An optional language override. + /// An evaluated . + ReadOnlySeString EvaluateMacroString(ReadOnlySpan macroString, Span localParameters = default, ClientLanguage? language = null); + /// /// Evaluates macros in text from the Addon sheet. ///