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