1275970Scy/* tests data packing and unpacking */
2275970Scy
3275970Scystruct msg {
4275970Scy	string /* sender */ from_name = 1; /* be verbose */
5275970Scy	string to_name = 2;
6275970Scy	optional struct[kill] attack = 3;
7275970Scy	array struct[run] run = 4;
8275970Scy}
9275970Scy
10275970Scystruct kill {
11275970Scy	string weapon = 0x10121;
12275970Scy	string action = 2;
13275970Scy	array int how_often = 3;
14275970Scy}
15275970Scy
16275970Scystruct run {
17275970Scy	string how = 1;
18275970Scy	optional bytes some_bytes = 2;
19275970Scy
20275970Scy	bytes fixed_bytes[24] = 3;
21275970Scy	array string notes = 4;
22275970Scy
23275970Scy	optional int64 large_number = 5;
24275970Scy	array int other_numbers = 6;
25275970Scy}
26