package wrpc-test:integration; interface sync { flags abc { a, b, c, } record rec-nested { foo: string, } record rec { nested: rec-nested, } variant var { var(rec), empty, } enum foobar { foo, bar, } fallible: func(ok: bool) -> result; numbers: func() -> tuple; with-flags: func(a: bool, b: bool, c: bool) -> abc; with-variant-option: func(ok: bool) -> option; with-record: func() -> rec; with-record-list: func(n: u8) -> list; with-record-tuple: func() -> tuple; with-enum: func() -> foobar; } interface async { with-streams: func(complete: bool) -> (bytes: stream, lists: stream>); } interface resources { resource foo { constructor(); foo: static func(v: foo) -> string; bar: func() -> string; } bar: func(v: borrow) -> string; } world sync-server { export sync; export foo: interface { f: func(x: string) -> u32; foo: func(x: string); } } world sync-client { import sync; import foo: interface { f: func(x: string) -> u32; foo: func(x: string); } } world async-server { export async; } world async-client { import async; } world resources-server { export resources; export strange: interface { use resources.{foo}; bar: func(v: borrow) -> u64; } } world resources-client { import resources; import strange: interface { use resources.{foo}; bar: func(v: borrow) -> u64; } }