Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions src/Lua.Unity/Assets/Lua.Unity/Runtime/LuaThreadAssetExtensions.cs
Original file line number Diff line number Diff line change
@@ -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);
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions src/Lua/LuaStateExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ public static ValueTask<LuaValue[]> DoStringAsync(this LuaState state, string so
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)
Expand Down
16 changes: 8 additions & 8 deletions src/Lua/Runtime/LuaThreadAccessExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,28 @@ public static ValueTask<int> DoStringAsync(this LuaThreadAccess access, string s
{
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)
Expand All @@ -52,7 +52,7 @@ public static async ValueTask<LuaValue[]> DoFileAsync(this LuaThreadAccess acces
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);
Expand All @@ -61,7 +61,7 @@ private static async ValueTask<int> DoClosureAsync(LuaThreadAccess access, LuaCl
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);
Expand Down