...
1namespace AnnotatedBinary;
2
3enum Food : byte {
4 None = 0,
5 Apple = 1,
6 Banana = 2,
7 Kiwi = 3,
8}
9
10table Baz {
11 meal:Food = Banana;
12}
13
14table Bar {
15 a:double = 3.14;
16 b:float = 1.68;
17 c:Baz;
18}
19
20union BarBaz {
21 Bar, Baz
22}
23
24union Measurement {
25 Tolerance, Dimension
26}
27
28struct Tolerance {
29 width:uint8;
30}
31
32union Any {
33 Bar, Tolerance
34}
35
36struct Dimension {
37 values:[int:3];
38 tolerances:[Tolerance:3];
39}
40
41struct Building {
42 floors:int;
43 doors:int;
44 windows:int;
45 dimensions:Dimension;
46}
47
48struct Location {
49 latitude:double;
50 longitude:double;
51}
52
53table Foo {
54 counter:int;
55 healthy:bool;
56 level:long = 99;
57 meal:Food = Apple;
58 bar:Bar;
59 home:Building;
60 name:string;
61 // Vector of tables
62 bars:[Bar];
63 // Union of tables
64 bar_baz:BarBaz;
65 // Vector of Scalars
66 accounts:[uint16];
67 bob:string;
68 alice:string;
69 // Optional Scalars
70 maybe_i32: int32 = null;
71 default_i32: int32 = 42;
72 just_i32: int32;
73 // Vector of strings
74 names:[string];
75 // Vector of structs
76 points_of_interest:[Location];
77 // Vector of unions
78 foobars:[BarBaz];
79 // Union of structs
80 measurement:Measurement;
81 // Union of struct/table
82 anything:Any;
83 // Default floating point
84 temperature:float=98.6;
85 // Not present object
86 teetotaler:Bar;
87
88 // NOTE THIS IS A PURPOSELY OLD VERSION OF annotated_binary.fbs TO TEST
89 // PROCESSING OF NEWER BINARIES THAN THE SCHEMA. DO NOT ADD TO THIS.
90}
91
92file_identifier "ANNO";
93
94root_type Foo;
View as plain text