This commit reimplements the C# API in terms of a Wasmtime linker. It removes the custom binding implementation that was based on reflection in favor of the linker's implementation. This should make the C# API a little closer to the Rust API. The `Engine` and `Store` types have been hidden behind the `Host` type which is responsible for hosting WebAssembly module instances. Documentation and tests have been updated.
40 lines
1009 B
C#
40 lines
1009 B
C#
using System;
|
|
using System.Buffers.Binary;
|
|
using System.Text;
|
|
using Wasmtime.Exports;
|
|
|
|
namespace Wasmtime.Externs
|
|
{
|
|
/// <summary>
|
|
/// Represents an external (instantiated) WebAssembly memory.
|
|
/// </summary>
|
|
public class ExternMemory : MemoryBase
|
|
{
|
|
internal ExternMemory(MemoryExport export, IntPtr memory)
|
|
{
|
|
_export = export;
|
|
_memory = memory;
|
|
}
|
|
|
|
/// <summary>
|
|
/// The name of the WebAssembly memory.
|
|
/// </summary>
|
|
public string Name => _export.Name;
|
|
|
|
/// <summary>
|
|
/// The minimum memory size (in WebAssembly page units).
|
|
/// </summary>
|
|
public uint Minimum => _export.Minimum;
|
|
|
|
/// <summary>
|
|
/// The maximum memory size (in WebAssembly page units).
|
|
/// </summary>
|
|
public uint Maximum => _export.Maximum;
|
|
|
|
protected override IntPtr MemoryHandle => _memory;
|
|
|
|
private MemoryExport _export;
|
|
private IntPtr _memory;
|
|
}
|
|
}
|