...
1struct LeafStruct {
2 a:int;
3 b:double;
4}
5
6table WrapperTable {
7 // A normal 32-bit sized vector that could be very far away (64-bit address).
8 vector:[int8] (offset64);
9}
10
11table RootTable {
12 // A normal 32-bit sized vector, that could be very far away (64-bit address).
13 far_vector:[ubyte] (offset64);
14
15 // An inplace value just to check that vtable offsets are correct.
16 a:int;
17
18 // A normal 32-bit sized string, that could be very far away (64-bit address).
19 far_string:string (offset64);
20
21 // A big 64-bit sized vector, that could be very far away (64-bit address).
22 big_vector:[ubyte] (vector64);
23
24 // A normal 32-bit sized string that is no far away (32-bit address).
25 near_string:string;
26
27 // A big 64-bit sized vector that is a nested flatbuffers (64-bit address).
28 nested_root:[ubyte] (vector64, nested_flatbuffer: "RootTable");
29
30 // A normal 32-bit size vector of structs, that could be very far away
31 // (64-bit address)
32 far_struct_vector:[LeafStruct] (offset64);
33
34 // A big 64-bit size vector of structs that could be very far away
35 // (64-bit address)
36 big_struct_vector:[LeafStruct] (vector64);
37
38 // A normal 32-bit size vector of tables. Currently 64-bit vectors don't
39 // support tables as it would require serializing a table (32-bit) before the
40 // vector (64-bit), which is not allowed.
41 //
42 // This demonstrates how you could have many vectors in the buffer, by
43 // effectively having a vector of 64-bit vectors. The IDL doesn't support
44 // nested vecotrs (e.g.: [[type]] ), so going through a wrapper table allows
45 // this.
46 many_vectors:[WrapperTable];
47}
48
49root_type RootTable;
View as plain text