1*c43e99fdSEd Maste/* tests data packing and unpacking */ 2*c43e99fdSEd Maste 3*c43e99fdSEd Mastestruct msg { 4*c43e99fdSEd Maste string /* sender */ from_name = 1; /* be verbose */ 5*c43e99fdSEd Maste string to_name = 2; 6*c43e99fdSEd Maste optional struct[kill] attack = 3; 7*c43e99fdSEd Maste array struct[run] run = 4; 8*c43e99fdSEd Maste} 9*c43e99fdSEd Maste 10*c43e99fdSEd Mastestruct kill { 11*c43e99fdSEd Maste string weapon = 0x10121; 12*c43e99fdSEd Maste string action = 2; 13*c43e99fdSEd Maste array int how_often = 3; 14*c43e99fdSEd Maste} 15*c43e99fdSEd Maste 16*c43e99fdSEd Mastestruct run { 17*c43e99fdSEd Maste string how = 1; 18*c43e99fdSEd Maste optional bytes some_bytes = 2; 19*c43e99fdSEd Maste 20*c43e99fdSEd Maste bytes fixed_bytes[24] = 3; 21*c43e99fdSEd Maste array string notes = 4; 22*c43e99fdSEd Maste 23*c43e99fdSEd Maste optional int64 large_number = 5; 24*c43e99fdSEd Maste array int other_numbers = 6; 25*c43e99fdSEd Maste} 26