1## Message with recursive types
2
3## VALID_HEADER includes a LENGTH Header and LENGTH Body
4VALID_HEADER method_call
5
6REQUIRED_FIELDS
7
8ALIGN 8
9END_LENGTH Header
10START_LENGTH Body
11
12# Everything is inside a dict
13TYPE DICT
14LENGTH Dict1
15START_LENGTH Dict1
16
17# first dict entry is an array of array of uint32
18STRING 'mega-uint-array'
19TYPE ARRAY
20TYPE ARRAY
21TYPE ARRAY
22TYPE UINT32
23LENGTH Array1
24START_LENGTH Array1
25
26LENGTH Array1_1
27START_LENGTH Array1_1
28UINT32_ARRAY { 1, 2, 3, 4, 5}
29UINT32_ARRAY { 2, 3, 4, 5, 1}
30UINT32_ARRAY { 3, 4, 5, 1, 2}
31END_LENGTH Array1_1
32
33LENGTH Array1_2
34START_LENGTH Array1_2
35UINT32_ARRAY { 4, 5, 6, 7, 8}
36UINT32_ARRAY { 5, 6, 7, 8, 4}
37END_LENGTH Array1_2
38
39END_LENGTH Array1
40
41# second dict entry is an array of strings
42STRING 'string-array'
43TYPE ARRAY
44TYPE STRING
45STRING_ARRAY { 'a', 'string', 'array'}
46
47# third dict entry is another dict
48STRING 'nested-dict'
49TYPE DICT
50LENGTH Dict2
51START_LENGTH Dict2
52
53STRING 'string'
54TYPE STRING
55STRING 'a deeply nested string'     
56
57STRING 'super-nested-dict'
58TYPE DICT
59LENGTH Dict3
60START_LENGTH Dict3
61
62STRING 'double-array'
63TYPE ARRAY
64TYPE DOUBLE
65DOUBLE_ARRAY {1.0, 2.0, 3.0}
66
67STRING 'dict-array'
68TYPE ARRAY
69TYPE DICT
70LENGTH Array2
71START_LENGTH Array2
72
73LENGTH Dict4
74START_LENGTH Dict4
75STRING 'key4'
76TYPE BYTE
77BYTE '4'
78END_LENGTH Dict4
79
80LENGTH Dict5
81START_LENGTH Dict5
82STRING 'key5'
83TYPE BYTE
84BYTE '5'
85END_LENGTH Dict5
86
87END_LENGTH Array2
88
89STRING 'boolean'
90TYPE BOOLEAN
91BOOLEAN false
92
93END_LENGTH Dict3
94
95END_LENGTH Dict2
96
97END_LENGTH Dict1
98
99END_LENGTH Body
100