using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.Marshalling;
using System.Threading;
using My.Company.Common;
using Interoptopus.API;
namespace My.Company;
partial class Plugin : IPlugin
{
public static NestedA CreateA(uint value) => new NestedA(value);
public static Task<NestedA> CreateAAsync(uint value, CancellationToken ct) => Task.FromResult(new NestedA(value));
public static uint GetValue() => 42;
public static Task<uint> GetValueAsync(CancellationToken ct) => Task.FromResult(42u);
}
partial class NestedA : INestedA<NestedA>
{
private readonly uint _value;
public NestedA() { _value = 0; }
internal NestedA(uint value) { _value = value; }
public static NestedA Create(uint value) => new NestedA(value);
public static Task<NestedA> CreateAsync(uint value, CancellationToken ct) => Task.FromResult(new NestedA(value));
public uint GetValue() => _value;
public Task<uint> GetValueAsync(CancellationToken ct) => Task.FromResult(_value);
}