lyra-wasm-scripting-test/guests/csharp/dotnet-guest-test/LyraApi/Ecs/ComponentInfo.cs

31 lines
968 B
C#

using ExampleWorld.wit.imports.lyra.api;
namespace LyraApi.Ecs;
public readonly struct ComponentInfo
{
internal readonly IEcs.ComponentInfo info;
public readonly string? HostName => info.hostName;
public readonly ulong Size => info.size;
public readonly ulong Alignment => info.alignment;
public readonly ulong TypeId => info.typeId.inner.Item1;
public ComponentInfo(IEcs.ComponentInfo info)
{
this.info = info;
}
public ComponentInfo(string hostName, ulong size, ulong alignment, ulong typeId)
{
var wasmTypeId = new IEcs.WasmTypeId((typeId, 0));
this.info = new IEcs.ComponentInfo(hostName, size, alignment, wasmTypeId);
}
public static ComponentInfo FromType<T>() where T : IComponent
{
var typeId = new IEcs.WasmTypeId((T.TypeId, 0));
var info = new IEcs.ComponentInfo(T.HostName, T.HostSize, T.HostAlignment, typeId);
return new ComponentInfo(info);
}
}