interoptopus_csharp 0.16.0-alpha.16

The C# backend for Interoptopus.
Documentation
using System.Threading;
using My.Company;
using My.Company.Common;

namespace My.Company;

class Plugin : IPlugin
{

    public static async Task<uint> AddOne(uint x, CancellationToken ct)
    {
        await Task.Yield();
        return x + 1;
    }

    public static async Task CallVoid(CancellationToken ct)
    {
        await Task.Yield();
    }

    public static async Task<WireOfHashMapStringString> Wire1(WireOfHashMapStringString x, CancellationToken ct)
    {
        await Task.Yield();
        var dictionary = x.Unwire();
        dictionary["hello"] = "world";
        return dictionary.Wire();
    }

    public static async Task<ResultWireOfHashMapStringStringError> Wire2(WireOfHashMapStringString x, CancellationToken ct)
    {
        await Task.Yield();
        var dictionary = x.Unwire();
        dictionary["hello"] = "world";
        var wire = dictionary.Wire();
        return ResultWireOfHashMapStringStringError.Ok(wire);
    }
}

partial class AsyncBasic: IAsyncBasic<AsyncBasic>
{
    public static AsyncBasic Create() => new();
    
    public async Task CallVoid(CancellationToken ct)
    {
        await Task.Yield();
    }

    public async Task<uint> AddOne(uint x, CancellationToken ct)
    {
        await Task.Yield();
        return x + 1;
    }

    public async Task<WireOfHashMapStringString> Wire1(WireOfHashMapStringString x, CancellationToken ct)
    {
        await Task.Yield();
        var dictionary = x.Unwire();
        dictionary["hello"] = "world";
        return dictionary.Wire();
    }

    public async Task<ResultWireOfHashMapStringStringError> Wire2(WireOfHashMapStringString x, CancellationToken ct)
    {
        await Task.Yield();
        var dictionary = x.Unwire();
        dictionary["hello"] = "world";
        var wire = dictionary.Wire();
        return ResultWireOfHashMapStringStringError.Ok(wire);
    }
}