1module fuzz.mojom;
2
3[Extensible]
4enum FuzzEnum {
5  FUZZ_VALUE0,
6  FUZZ_VALUE1,
7  FUZZ_VALUE2
8};
9
10struct FuzzDummyStruct {
11  int8 dummy;
12};
13
14union FuzzUnion {
15  bool fuzz_bool;
16  int8 fuzz_int8;
17  uint8 fuzz_uint8;
18  int16 fuzz_int16;
19  uint16 fuzz_uint16;
20  int32 fuzz_int32;
21  uint32 fuzz_uint32;
22  int64 fuzz_int64;
23  uint64 fuzz_uint64;
24  float fuzz_float;
25  double fuzz_double;
26  string fuzz_string;
27  array<int8> fuzz_primitive_array;
28  array<FuzzDummyStruct> fuzz_struct_array;
29  map<string, int8> fuzz_primitive_map;
30  map<string, array<string>> fuzz_array_map;
31  map<string, FuzzDummyStruct> fuzz_struct_map;
32  map<FuzzEnum, FuzzUnion> fuzz_union_map;
33
34  array<map<FuzzEnum, map<int8, array<FuzzUnion?>?>>>? fuzz_complex;
35};
36
37struct FuzzStruct {
38  bool fuzz_bool;
39  int8 fuzz_int8;
40  uint8 fuzz_uint8;
41  int16 fuzz_int16;
42  uint16 fuzz_uint16;
43  int32 fuzz_int32;
44  uint32 fuzz_uint32;
45  int64 fuzz_int64;
46  uint64 fuzz_uint64;
47  float fuzz_float;
48  double fuzz_double;
49  string fuzz_string;
50
51  array<int8> fuzz_primitive_array;
52  map<string, int8> fuzz_primitive_map;
53  map<string, array<string>> fuzz_array_map;
54  map<FuzzEnum, FuzzUnion> fuzz_union_map;
55  array<FuzzUnion> fuzz_union_array;
56  array<FuzzStruct> fuzz_struct_array;
57  array<int8>? fuzz_nullable_array;
58
59  array<map<FuzzEnum, map<int8, array<FuzzStruct?>?>>>? fuzz_complex;
60};
61
62interface FuzzDummyInterface {
63  Ping();
64};
65
66interface FuzzInterface {
67  FuzzBasic();
68  FuzzBasicResp() => ();
69  [Sync]
70  FuzzBasicSyncResp() => ();
71
72  FuzzArgs(FuzzStruct a, FuzzStruct? b);
73  FuzzArgsResp(FuzzStruct a, FuzzStruct? b) => ();
74  [Sync]
75  FuzzArgsSyncResp(FuzzStruct a, FuzzStruct? b) => ();
76
77  FuzzAssociated(associated FuzzDummyInterface& request);
78};
79