Skip to content

Commit d8213be

Browse files
authored
Merge pull request #179 from nuskey8/execute-api
Rename some Do*Async to ExecuteAsync and add api for LuaAssets
2 parents 82c72fd + c49122d commit d8213be

File tree

4 files changed

+63
-12
lines changed

4 files changed

+63
-12
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
using Lua.Runtime;
2+
using System;
3+
using System.Threading;
4+
using System.Threading.Tasks;
5+
6+
namespace Lua.Unity
7+
{
8+
public static class LuaThreadAssetExtensions
9+
{
10+
public static ValueTask<LuaValue[]> ExecuteAsync(this LuaThreadAccess access, LuaAssetBase luaAssetBase, string name, CancellationToken cancellationToken = default)
11+
{
12+
if (luaAssetBase == null)
13+
{
14+
throw new ArgumentNullException(nameof(luaAssetBase));
15+
}
16+
17+
var module = luaAssetBase.GetModule(name);
18+
var closure = module.Type == LuaModuleType.Bytes
19+
? access.State.Load(module.ReadBytes(), module.Name)
20+
: access.State.Load(module.ReadText(), module.Name);
21+
return access.ExecuteAsync(closure, cancellationToken);
22+
}
23+
24+
public static ValueTask<int> ExecuteAsync(this LuaThreadAccess access, LuaAssetBase luaAssetBase, string name, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
25+
{
26+
if (luaAssetBase == null)
27+
{
28+
throw new ArgumentNullException(nameof(luaAssetBase));
29+
}
30+
31+
var module = luaAssetBase.GetModule(name);
32+
var closure = module.Type == LuaModuleType.Bytes
33+
? access.State.Load(module.ReadBytes(), module.Name)
34+
: access.State.Load(module.ReadText(), module.Name);
35+
return access.ExecuteAsync(closure, buffer, cancellationToken);
36+
}
37+
38+
public static ValueTask<LuaValue[]> ExecuteAsync(this LuaState state, LuaAssetBase luaAssetBase, string name, CancellationToken cancellationToken = default)
39+
{
40+
return state.RootAccess.ExecuteAsync(luaAssetBase, name, cancellationToken);
41+
}
42+
43+
public static ValueTask<int> ExecuteAsync(this LuaState state, LuaAssetBase luaAssetBase, string name, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
44+
{
45+
return state.RootAccess.ExecuteAsync(luaAssetBase, name, buffer, cancellationToken);
46+
}
47+
}
48+
}

src/Lua.Unity/Assets/Lua.Unity/Runtime/LuaThreadAssetExtensions.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Lua/LuaStateExtensions.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ public static ValueTask<LuaValue[]> DoStringAsync(this LuaState state, string so
1515
return state.RootAccess.DoStringAsync(source, chunkName, cancellationToken);
1616
}
1717

18-
public static ValueTask<int> DoBytesAsync(this LuaState state, ReadOnlySpan<byte> source, Memory<LuaValue> buffer, string chunkName, CancellationToken cancellationToken = default)
18+
public static ValueTask<int> ExecuteAsync(this LuaState state, ReadOnlySpan<byte> source, Memory<LuaValue> buffer, string chunkName, CancellationToken cancellationToken = default)
1919
{
20-
return state.RootAccess.DoBytesAsync(source, buffer, chunkName, cancellationToken);
20+
return state.RootAccess.ExecuteAsync(source, buffer, chunkName, cancellationToken);
2121
}
2222

23-
public static ValueTask<LuaValue[]> DoBytesAsync(this LuaState state, ReadOnlySpan<byte> source, string chunkName, CancellationToken cancellationToken = default)
23+
public static ValueTask<LuaValue[]> ExecuteAsync(this LuaState state, ReadOnlySpan<byte> source, string chunkName, CancellationToken cancellationToken = default)
2424
{
25-
return state.RootAccess.DoBytesAsync(source, chunkName, cancellationToken);
25+
return state.RootAccess.ExecuteAsync(source, chunkName, cancellationToken);
2626
}
2727

2828
public static ValueTask<int> DoFileAsync(this LuaState state, string path, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)

src/Lua/Runtime/LuaThreadAccessExtensions.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,28 @@ public static ValueTask<int> DoStringAsync(this LuaThreadAccess access, string s
1010
{
1111
access.ThrowIfInvalid();
1212
var closure = access.State.Load(source, chunkName ?? source);
13-
return DoClosureAsync(access, closure, results, cancellationToken);
13+
return ExecuteAsync(access, closure, results, cancellationToken);
1414
}
1515

1616
public static ValueTask<LuaValue[]> DoStringAsync(this LuaThreadAccess access, string source, string? chunkName = null, CancellationToken cancellationToken = default)
1717
{
1818
access.ThrowIfInvalid();
1919
var closure = access.State.Load(source, chunkName ?? source);
20-
return DoClosureAsync(access, closure, cancellationToken);
20+
return ExecuteAsync(access, closure, cancellationToken);
2121
}
2222

23-
public static ValueTask<int> DoBytesAsync(this LuaThreadAccess access, ReadOnlySpan<byte> source, Memory<LuaValue> results, string chunkName, CancellationToken cancellationToken = default)
23+
public static ValueTask<int> ExecuteAsync(this LuaThreadAccess access, ReadOnlySpan<byte> source, Memory<LuaValue> results, string chunkName, CancellationToken cancellationToken = default)
2424
{
2525
access.ThrowIfInvalid();
2626
var closure = access.State.Load(source, chunkName);
27-
return DoClosureAsync(access, closure, results, cancellationToken);
27+
return ExecuteAsync(access, closure, results, cancellationToken);
2828
}
2929

30-
public static ValueTask<LuaValue[]> DoBytesAsync(this LuaThreadAccess access, ReadOnlySpan<byte> source, string chunkName, CancellationToken cancellationToken = default)
30+
public static ValueTask<LuaValue[]> ExecuteAsync(this LuaThreadAccess access, ReadOnlySpan<byte> source, string chunkName, CancellationToken cancellationToken = default)
3131
{
3232
access.ThrowIfInvalid();
3333
var closure = access.State.Load(source, chunkName);
34-
return DoClosureAsync(access, closure, cancellationToken);
34+
return ExecuteAsync(access, closure, cancellationToken);
3535
}
3636

3737
public static async ValueTask<int> DoFileAsync(this LuaThreadAccess access, string path, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
@@ -52,7 +52,7 @@ public static async ValueTask<LuaValue[]> DoFileAsync(this LuaThreadAccess acces
5252
return results.AsSpan().ToArray();
5353
}
5454

55-
private static async ValueTask<int> DoClosureAsync(LuaThreadAccess access, LuaClosure closure, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
55+
public static async ValueTask<int> ExecuteAsync(this LuaThreadAccess access, LuaClosure closure, Memory<LuaValue> buffer, CancellationToken cancellationToken = default)
5656
{
5757
access.ThrowIfInvalid();
5858
var count = await access.RunAsync(closure, 0, cancellationToken);
@@ -61,7 +61,7 @@ private static async ValueTask<int> DoClosureAsync(LuaThreadAccess access, LuaCl
6161
return results.Count;
6262
}
6363

64-
public static async ValueTask<LuaValue[]> DoClosureAsync(this LuaThreadAccess access, LuaClosure closure, CancellationToken cancellationToken = default)
64+
public static async ValueTask<LuaValue[]> ExecuteAsync(this LuaThreadAccess access, LuaClosure closure, CancellationToken cancellationToken = default)
6565
{
6666
access.ThrowIfInvalid();
6767
var count = await access.RunAsync(closure, 0, cancellationToken);

0 commit comments

Comments
 (0)