wit-bindgen-cli 0.56.0

CLI tool to generate bindings for WIT documents and the component model.
package test:fixed-length-lists;

interface to-test {
  list-param: func(a: list<u32, 4>);
  list-param2: func(a: list<list<u32, 2>, 2>);
  list-param3: func(a: list<s32, 20>);
  list-result: func() -> list<u8, 8>;

  list-minmax16: func(a: list<u16, 4>, b: list<s16, 4>) -> tuple<list<u16, 4>, list<s16, 4>>;
  list-minmax-float: func(a: list<f32, 2>, b: list<f64, 2>)
    -> tuple<list<f32, 2>, list<f64, 2>>;

  list-roundtrip: func(a: list<u8, 12>) -> list<u8, 12>;

  nested-roundtrip: func(a: list<list<u32, 2>, 2>, b: list<list<s32, 2>, 2>) -> tuple<list<list<u32, 2>,2>, list<list<s32, 2>, 2>>;
  large-roundtrip: func(a: list<list<u32, 2>, 2>, b: list<list<s32, 4>, 4>) -> tuple<list<list<u32, 2>,2>, list<list<s32, 4>, 4>>;

  record nested {
    l: list<s32, 2>,
  }

  nightmare-on-cpp: func(a: list<nested, 2>) -> list<nested, 2>;
}

world test {
  export to-test;
}

world runner {
  import to-test;

  export run: func();
}