wit-bindgen-cli 0.57.1

CLI tool to generate bindings for WIT documents and the component model.
using System.Text;
using Import = ResourceWithListsWorld.wit.Imports.test.resourceWithLists.ITestImports;

namespace ResourceWithListsWorld.wit.Exports.test.resourceWithLists
{
    public class TestExportsImpl : ITestExports {
	public class Thing : ITestExports.Thing, ITestExports.IThing {
	    public Import.Thing val;

	    public Thing(byte[] v) {
		var bytes = Encoding.ASCII.GetBytes(" Thing");
		var result = new byte[v.Count() + bytes.Count()];
		Array.Copy(v, result, v.Count());
		Array.Copy(bytes, 0, result, v.Count(), bytes.Count());
		this.val = new Import.Thing(result);
	    }

	    public byte[] Foo() {
		var v = this.val.Foo();
		var bytes = Encoding.ASCII.GetBytes(" Thing.foo");
		var result = new byte[v.Count() + bytes.Count()];
		Array.Copy(v, result, v.Count());
		Array.Copy(bytes, 0, result, v.Count(), bytes.Count());
		return result;
	    }

	    public void Bar(byte[] v) {
		var bytes = Encoding.ASCII.GetBytes(" Thing.bar");
		var result = new byte[v.Count() + bytes.Count()];
		Array.Copy(v, result, v.Count());
		Array.Copy(bytes, 0, result, v.Count(), bytes.Count());
		this.val.Bar(result);
	    }

	    public static byte[] Baz(byte[] v) {
		var bytes = Encoding.ASCII.GetBytes(" Thing.baz");
		var result = new byte[v.Count() + bytes.Count()];
		Array.Copy(v, result, v.Count());
		Array.Copy(bytes, 0, result, v.Count(), bytes.Count());

		var v2 = Import.Thing.Baz(result);
		var bytes2 = Encoding.ASCII.GetBytes(" Thing.baz again");
		var result2 = new byte[v2.Count() + bytes2.Count()];
		Array.Copy(v2, result2, v2.Count());
		Array.Copy(bytes2, 0, result2, v2.Count(), bytes2.Count());

		return result2;
	    }
	}
    }
}