Path: blob/main/crates/component-macro/tests/codegen/records.wit
1692 views
package foo:foo; interface records { tuple-arg: func(x: tuple<char, u32>); tuple-result: func() -> tuple<char, u32>; record empty {} empty-arg: func(x: empty); empty-result: func() -> empty; /// A record containing two scalar fields /// that both have the same type record scalars { /// The first field, named a a: u32, /// The second field, named b b: u32, } scalar-arg: func(x: scalars); scalar-result: func() -> scalars; /// A record that is really just flags /// All of the fields are bool record really-flags { a: bool, b: bool, c: bool, d: bool, e: bool, f: bool, g: bool, h: bool, i: bool, } flags-arg: func(x: really-flags); flags-result: func() -> really-flags; record aggregates { a: scalars, b: u32, c: empty, d: string, e: really-flags, } aggregate-arg: func(x: aggregates); aggregate-result: func() -> aggregates; type tuple-typedef = tuple<s32>; type int-typedef = s32; type tuple-typedef2 = tuple<int-typedef>; typedef-inout: func(e: tuple-typedef2) -> s32; } world the-world { import records; export records; }