wit-component 0.3.2

Tooling for working with `*.wit` and component files together.
Documentation
interface records {
  record empty {
  }

  record scalars {
    a: u32,
    b: u32,
  }

  flags really-flags {
    a,
    b,
    c,
    d,
    e,
    f,
    g,
    h,
    i,
  }

  record aggregates {
    a: scalars,
    b: u32,
    c: empty,
    d: string,
    e: really-flags,
  }

  type int-typedef = s32

  type tuple-typedef2 = tuple<int-typedef>

  tuple-arg: func(x: tuple<char, u32>)

  tuple-result: func() -> tuple<char, u32>

  empty-arg: func(x: empty)

  empty-result: func() -> empty

  scalar-arg: func(x: scalars)

  scalar-result: func() -> scalars

  flags-arg: func(x: really-flags)

  flags-result: func() -> really-flags

  aggregate-arg: func(x: aggregates)

  aggregate-result: func() -> aggregates

  typedef-inout: func(e: tuple-typedef2) -> s32

}

interface records-exports {
  record empty {
  }

  record scalars {
    a: u32,
    b: u32,
  }

  record really-flags {
    a: bool,
    b: bool,
    c: bool,
    d: bool,
    e: bool,
    f: bool,
    g: bool,
    h: bool,
    i: bool,
  }

  record aggregates {
    a: scalars,
    b: u32,
    c: empty,
    d: string,
    e: really-flags,
  }

  type tuple-typedef = tuple<s32>

  type int-typedef = s32

  type tuple-typedef2 = tuple<int-typedef>

  tuple-arg: func(x: tuple<char, u32>)

  tuple-result: func() -> tuple<char, u32>

  empty-arg: func(x: empty)

  empty-result: func() -> empty

  scalar-arg: func(x: scalars)

  scalar-result: func() -> scalars

  flags-arg: func(x: really-flags)

  flags-result: func() -> really-flags

  aggregate-arg: func(x: aggregates)

  aggregate-result: func() -> aggregates

  typedef-inout: func(e: tuple-typedef2) -> s32

}

world records-world {
  import records: records
  export records: records-exports
}