| // Demonstrates the ability to have vectors of unions, and also to |
| // store structs and strings in unions. |
| |
| table Attacker { |
| sword_attack_damage: int; |
| } |
| |
| struct Rapunzel { |
| hair_length: int; |
| } |
| |
| struct BookReader { |
| books_read: int; |
| } |
| |
| union Character { |
| MuLan: Attacker, // Can have name be different from type. |
| Rapunzel, // Or just both the same, as before. |
| Belle: BookReader, |
| BookFan: BookReader, |
| Other: string, |
| Unused: string |
| } |
| |
| struct FallingTub { |
| weight: int; |
| } |
| |
| table HandFan { |
| length: int; |
| } |
| |
| union Gadget { |
| FallingTub, |
| HandFan, |
| } |
| |
| table Movie { |
| main_character: Character; |
| characters: [Character]; |
| } |
| |
| root_type Movie; |
| file_identifier "MOVI"; |