wit-bindgen-cli 0.57.1

CLI tool to generate bindings for WIT documents and the component model.
package test:maps;

interface to-test {
  type names-by-id = map<u32, string>;
  type ids-by-name = map<string, u32>;
  type bytes-by-name = map<string, list<u8>>;

  record labeled-entry {
    label: string,
    values: names-by-id,
  }

  variant map-or-string {
    as-map(names-by-id),
    as-string(string),
  }

  named-roundtrip: func(a: names-by-id) -> ids-by-name;
  bytes-roundtrip: func(a: bytes-by-name) -> bytes-by-name;
  empty-roundtrip: func(a: names-by-id) -> names-by-id;
  option-roundtrip: func(a: map<string, option<u32>>) -> map<string, option<u32>>;
  record-roundtrip: func(a: labeled-entry) -> labeled-entry;
  inline-roundtrip: func(a: map<u32, string>) -> map<string, u32>;
  large-roundtrip: func(a: names-by-id) -> names-by-id;
  multi-param-roundtrip: func(a: names-by-id, b: bytes-by-name) -> tuple<ids-by-name, bytes-by-name>;
  nested-roundtrip: func(a: map<string, map<u32, string>>) -> map<string, map<u32, string>>;
  variant-roundtrip: func(a: map-or-string) -> map-or-string;
  result-roundtrip: func(a: result<names-by-id, string>) -> result<names-by-id, string>;
  tuple-roundtrip: func(a: tuple<names-by-id, u64>) -> tuple<names-by-id, u64>;
  single-entry-roundtrip: func(a: names-by-id) -> names-by-id;
}

world test {
  export to-test;
}

world runner {
  import to-test;

  export run: func();
}