interoptopus_csharp 0.16.0-alpha.10

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

public class TestPatternServicesCallbacks
{

    [Fact]
    public void CallbackSimple()
    {
        var callbacks = ServiceCallbacks.Create();
        var called = false;

        callbacks.CallbackSimple(x =>
        {
            called = true;
            Assert.Equal(x, 0u);
            return x;
        });

        Assert.True(called);
        callbacks.Dispose();
    }

    [Fact]
    public void CallbackWithSlice()
    {
        var callbacks = ServiceCallbacks.Create();
        var called = false;
        var slice = new[] { 1, 2, 3 }.Slice();

        callbacks.CallbackWithSlice((x, y) =>
        {
            Assert.Equal(x, 1);
            Assert.Equal(y, 2);
            called = true;
            return ResultVoidError.Ok;
        }, slice);

        Assert.True(called);
        slice.Dispose();
        callbacks.Dispose();
    }

    [Fact]
    public void CallbackFfiReturn()
    {
        var service = ServiceCallbacks.Create();

        service.CallbackFfiReturn((x, y) => ResultVoidError.Ok);

        service.Dispose();
    }
}