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-variant-list: func() -> list; with-record: func() -> rec; with-record-list: func(n: u8) -> list; with-record-tuple: func() -> tuple; with-enum: func() -> foobar; } interface async { record something { foo: string, } with-streams: func() -> tuple, stream>>; with-future: func(x: something, s: stream) -> future>; identity-nested-async: func(v: future>>>) -> future>>>; } 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; } } interface get-types { flags feature-flags { show-a, show-b, show-c, show-d, show-e, show-f, } get-features: func() -> feature-flags; } world types { import get-types; }