Browse Source

Merge pull request #179 from nuskey8/execute-api

Rename some Do*Async to ExecuteAsync and add api for LuaAssets
Akeit0 5 months ago
parent
commit
d8213be371

+ 48 - 0
src/Lua.Unity/Assets/Lua.Unity/Runtime/LuaThreadAssetExtensions.cs

@@ -0,0 +1,48 @@
+using Lua.Runtime;
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Lua.Unity
+{
+    public static class LuaThreadAssetExtensions
+    {
+        public static ValueTask<LuaValue[]> ExecuteAsync(this LuaThreadAccess access, LuaAssetBase luaAssetBase, string name, CancellationToken cancellationToken = default)
+        {
+            if (luaAssetBase == null)
+            {
+                throw new ArgumentNullException(nameof(luaAssetBase));
+            }
+
+            var module = luaAssetBase.GetModule(name);
+            var closure = module.Type == LuaModuleType.Bytes
+                ? access.State.Load(module.ReadBytes(), module.Name)
+                : access.State.Load(module.ReadText(), module.Name);
+            return access.ExecuteAsync(closure, cancellationToken);
+        }
+
+        public static ValueTask<int> ExecuteAsync(this LuaThreadAccess access, LuaAssetBase luaAssetBase, string name, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
+        {
+            if (luaAssetBase == null)
+            {
+                throw new ArgumentNullException(nameof(luaAssetBase));
+            }
+
+            var module = luaAssetBase.GetModule(name);
+            var closure = module.Type == LuaModuleType.Bytes
+                ? access.State.Load(module.ReadBytes(), module.Name)
+                : access.State.Load(module.ReadText(), module.Name);
+            return access.ExecuteAsync(closure, buffer, cancellationToken);
+        }
+
+        public static ValueTask<LuaValue[]> ExecuteAsync(this LuaState state, LuaAssetBase luaAssetBase, string name, CancellationToken cancellationToken = default)
+        {
+            return state.RootAccess.ExecuteAsync(luaAssetBase, name, cancellationToken);
+        }
+
+        public static ValueTask<int> ExecuteAsync(this LuaState state, LuaAssetBase luaAssetBase, string name, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
+        {
+            return state.RootAccess.ExecuteAsync(luaAssetBase, name, buffer, cancellationToken);
+        }
+    }
+}

+ 3 - 0
src/Lua.Unity/Assets/Lua.Unity/Runtime/LuaThreadAssetExtensions.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: f82c28987dc44385a582e3eb37501ee8
+timeCreated: 1750856924

+ 4 - 4
src/Lua/LuaStateExtensions.cs

@@ -15,14 +15,14 @@ public static class LuaStateExtensions
         return state.RootAccess.DoStringAsync(source, chunkName, cancellationToken);
     }
 
-    public static ValueTask<int> DoBytesAsync(this LuaState state, ReadOnlySpan<byte> source, Memory<LuaValue> buffer, string chunkName, CancellationToken cancellationToken = default)
+    public static ValueTask<int> ExecuteAsync(this LuaState state, ReadOnlySpan<byte> source, Memory<LuaValue> buffer, string chunkName, CancellationToken cancellationToken = default)
     {
-        return state.RootAccess.DoBytesAsync(source, buffer, chunkName, cancellationToken);
+        return state.RootAccess.ExecuteAsync(source, buffer, chunkName, cancellationToken);
     }
 
-    public static ValueTask<LuaValue[]> DoBytesAsync(this LuaState state, ReadOnlySpan<byte> source, string chunkName, CancellationToken cancellationToken = default)
+    public static ValueTask<LuaValue[]> ExecuteAsync(this LuaState state, ReadOnlySpan<byte> source, string chunkName, CancellationToken cancellationToken = default)
     {
-        return state.RootAccess.DoBytesAsync(source, chunkName, cancellationToken);
+        return state.RootAccess.ExecuteAsync(source, chunkName, cancellationToken);
     }
 
     public static ValueTask<int> DoFileAsync(this LuaState state, string path, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)

+ 8 - 8
src/Lua/Runtime/LuaThreadAccessExtensions.cs

@@ -10,28 +10,28 @@ public static class LuaThreadAccessAccessExtensions
     {
         access.ThrowIfInvalid();
         var closure = access.State.Load(source, chunkName ?? source);
-        return DoClosureAsync(access, closure, results, cancellationToken);
+        return ExecuteAsync(access, closure, results, cancellationToken);
     }
 
     public static ValueTask<LuaValue[]> DoStringAsync(this LuaThreadAccess access, string source, string? chunkName = null, CancellationToken cancellationToken = default)
     {
         access.ThrowIfInvalid();
         var closure = access.State.Load(source, chunkName ?? source);
-        return DoClosureAsync(access, closure, cancellationToken);
+        return ExecuteAsync(access, closure, cancellationToken);
     }
 
-    public static ValueTask<int> DoBytesAsync(this LuaThreadAccess access, ReadOnlySpan<byte> source, Memory<LuaValue> results, string chunkName, CancellationToken cancellationToken = default)
+    public static ValueTask<int> ExecuteAsync(this LuaThreadAccess access, ReadOnlySpan<byte> source, Memory<LuaValue> results, string chunkName, CancellationToken cancellationToken = default)
     {
         access.ThrowIfInvalid();
         var closure = access.State.Load(source, chunkName);
-        return DoClosureAsync(access, closure, results, cancellationToken);
+        return ExecuteAsync(access, closure, results, cancellationToken);
     }
 
-    public static ValueTask<LuaValue[]> DoBytesAsync(this LuaThreadAccess access, ReadOnlySpan<byte> source, string chunkName, CancellationToken cancellationToken = default)
+    public static ValueTask<LuaValue[]> ExecuteAsync(this LuaThreadAccess access, ReadOnlySpan<byte> source, string chunkName, CancellationToken cancellationToken = default)
     {
         access.ThrowIfInvalid();
         var closure = access.State.Load(source, chunkName);
-        return DoClosureAsync(access, closure, cancellationToken);
+        return ExecuteAsync(access, closure, cancellationToken);
     }
 
     public static async ValueTask<int> DoFileAsync(this LuaThreadAccess access, string path, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
@@ -52,7 +52,7 @@ public static class LuaThreadAccessAccessExtensions
         return results.AsSpan().ToArray();
     }
 
-    private static async ValueTask<int> DoClosureAsync(LuaThreadAccess access, LuaClosure closure, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
+    public static async ValueTask<int> ExecuteAsync(this LuaThreadAccess access, LuaClosure closure, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
     {
         access.ThrowIfInvalid();
         var count = await access.RunAsync(closure, 0, cancellationToken);
@@ -61,7 +61,7 @@ public static class LuaThreadAccessAccessExtensions
         return results.Count;
     }
 
-    public static async ValueTask<LuaValue[]> DoClosureAsync(this LuaThreadAccess access, LuaClosure closure, CancellationToken cancellationToken = default)
+    public static async ValueTask<LuaValue[]> ExecuteAsync(this LuaThreadAccess access, LuaClosure closure, CancellationToken cancellationToken = default)
     {
         access.ThrowIfInvalid();
         var count = await access.RunAsync(closure, 0, cancellationToken);