Browse Source

Add: string.lower/upper

AnnulusGames 1 year ago
parent
commit
c05580daa3

+ 2 - 0
src/Lua/Standard/OpenLibExtensions.cs

@@ -78,6 +78,8 @@ public static class OpenLibExtensions
 
     static readonly LuaFunction[] stringFunctions = [
         LenFunction.Instance,
+        LowerFunction.Instance,
+        UpperFunction.Instance,
     ];
 
     static readonly LuaFunction[] ioFunctions = [

+ 15 - 0
src/Lua/Standard/Text/LowerFunction.cs

@@ -0,0 +1,15 @@
+
+namespace Lua.Standard.Text;
+
+public sealed class LowerFunction : LuaFunction
+{
+    public override string Name => "lower";
+    public static readonly LowerFunction Instance = new();
+
+    protected override ValueTask<int> InvokeAsyncCore(LuaFunctionExecutionContext context, Memory<LuaValue> buffer, CancellationToken cancellationToken)
+    {
+        var s = context.GetArgument<string>(0);
+        buffer.Span[0] = s.ToLower();
+        return new(1);
+    }
+}

+ 15 - 0
src/Lua/Standard/Text/UpperFunction.cs

@@ -0,0 +1,15 @@
+
+namespace Lua.Standard.Text;
+
+public sealed class UpperFunction : LuaFunction
+{
+    public override string Name => "upper";
+    public static readonly UpperFunction Instance = new();
+
+    protected override ValueTask<int> InvokeAsyncCore(LuaFunctionExecutionContext context, Memory<LuaValue> buffer, CancellationToken cancellationToken)
+    {
+        var s = context.GetArgument<string>(0);
+        buffer.Span[0] = s.ToUpper();
+        return new(1);
+    }
+}