PkmnLibRSharp/PkmnLibRSharp/DynamicData/Libraries/WasmScriptResolver.cs

39 lines
1.2 KiB
C#

#if WASM
using PkmnLibSharp.Utils;
using Interface = PkmnLibSharp.FFI.DynamicData.Libraries.ScriptResolver;
namespace PkmnLibSharp.DynamicData.Libraries
{
public class WasmScriptResolver : ScriptResolver
{
protected WasmScriptResolver(FFIHandle handle) : base(handle)
{
}
public static WasmScriptResolver Create()
{
var handle = Interface.webassembly_script_resolver_new();
return Resolver.Instance.ResolveWasmScriptResolver(handle.Resolve());
}
/// <summary>
/// Loads a compiled WASM module into the script resolver.
/// </summary>
/// <param name="data">The bytes of a compiled WASM module</param>
public void LoadBytes(byte[] data)
{
Interface.webassembly_script_resolver_load_wasm_from_bytes(Handle, data.ArrayPtr(), (ulong)data.LongLength)
.Result();
}
/// <summary>
/// Tells the script resolver we're done loading wasm modules, and to finalize the resolver. After this it is
/// ready for use.
/// </summary>
public void FinalizeResolver()
{
Interface.webassembly_script_resolver_finalize(Handle).Result();
}
}
}
#endif