| namespace AnnotatedBinary; |
| |
| enum Food : byte { |
| None = 0, |
| Apple = 1, |
| Banana = 2, |
| Kiwi = 3, |
| } |
| |
| table Baz { |
| meal:Food = Banana; |
| } |
| |
| table Bar { |
| a:double = 3.14; |
| b:float = 1.68; |
| c:Baz; |
| } |
| |
| union BarBaz { |
| Bar, Baz |
| } |
| |
| union Measurement { |
| Tolerance, Dimension |
| } |
| |
| struct Tolerance { |
| width:uint8; |
| } |
| |
| union Any { |
| Bar, Tolerance |
| } |
| |
| struct Dimension { |
| values:[int:3]; |
| tolerances:[Tolerance:3]; |
| } |
| |
| struct Building { |
| floors:int; |
| doors:int; |
| windows:int; |
| dimensions:Dimension; |
| } |
| |
| struct Location { |
| latitude:double; |
| longitude:double; |
| } |
| |
| table Foo { |
| counter:int; |
| healthy:bool; |
| level:long = 99; |
| meal:Food = Apple; |
| bar:Bar; |
| home:Building; |
| name:string; |
| // Vector of tables |
| bars:[Bar]; |
| // Union of tables |
| bar_baz:BarBaz; |
| // Vector of Scalars |
| accounts:[uint16]; |
| bob:string; |
| alice:string; |
| // Optional Scalars |
| maybe_i32: int32 = null; |
| default_i32: int32 = 42; |
| just_i32: int32; |
| // Vector of strings |
| names:[string]; |
| // Vector of structs |
| points_of_interest:[Location]; |
| // Vector of unions |
| foobars:[BarBaz]; |
| // Union of structs |
| measurement:Measurement; |
| // Union of struct/table |
| anything:Any; |
| // Default floating point |
| temperature:float=98.6; |
| // Not present object |
| teetotaler:Bar; |
| charlie:string; |
| } |
| |
| file_identifier "ANNO"; |
| |
| root_type Foo; |