wit-bindgen-cli 0.57.0

CLI tool to generate bindings for WIT documents and the component model.
using System;
using System.Diagnostics;
using RunnerWorld.wit.Imports.test.records;

namespace RunnerWorld;

public class RunnerWorldExportsImpl : IRunnerWorldExports
{
    public static void Run()
    {
            {
                var results = IToTestImports.MultipleResults();
                Debug.Assert(results.Item1 == 4);
                Debug.Assert(results.Item2 == 5);
            }

            (byte, uint) input = (1, 2);
            (uint, byte) output = IToTestImports.SwapTuple(input);
            Debug.Assert(output.Item1 == 2);
            Debug.Assert(output.Item2 == 1);

            Debug.Assert(IToTestImports.RoundtripFlags1(IToTestImports.F1.A) == IToTestImports.F1.A);
            Debug.Assert(IToTestImports.RoundtripFlags1(0) == 0);
            Debug.Assert(IToTestImports.RoundtripFlags1(IToTestImports.F1.B) == IToTestImports.F1.B);
            Debug.Assert(IToTestImports.RoundtripFlags1(IToTestImports.F1.A | IToTestImports.F1.B) == (IToTestImports.F1.A | IToTestImports.F1.B));

            Debug.Assert(IToTestImports.RoundtripFlags2(IToTestImports.F2.C) == IToTestImports.F2.C);
            Debug.Assert(IToTestImports.RoundtripFlags2(0) == 0);
            Debug.Assert(IToTestImports.RoundtripFlags2(IToTestImports.F2.D) == IToTestImports.F2.D);
            Debug.Assert(IToTestImports.RoundtripFlags2(IToTestImports.F2.C | IToTestImports.F2.E) == (IToTestImports.F2.C | IToTestImports.F2.E));

            {
                var result = IToTestImports.RoundtripFlags3(IToTestImports.Flag8.B0, IToTestImports.Flag16.B1,
                    IToTestImports.Flag32.B2);
                Debug.Assert(result.Item1 == IToTestImports.Flag8.B0);
                Debug.Assert(result.Item2 == IToTestImports.Flag16.B1);
                Debug.Assert(result.Item3 == IToTestImports.Flag32.B2);
            }

            {
                IToTestImports.R1 inputRecord = new(8, 0);
                var result = IToTestImports.RoundtripRecord1(inputRecord);
                Debug.Assert(result.a == 8);
                Debug.Assert(result.b == 0);
            }

            {
                IToTestImports.R1 inputRecord = new(0, IToTestImports.F1.A | IToTestImports.F1.B);

                var result = IToTestImports.RoundtripRecord1(inputRecord);
                Debug.Assert(result.a == 0);
                Debug.Assert(result.b == (IToTestImports.F1.A | IToTestImports.F1.B));
            }

            {
                var result = IToTestImports.Tuple1(1);
                Debug.Assert(result == 1);
            }
    }
}