54 lines
1.8 KiB
Plaintext
54 lines
1.8 KiB
Plaintext
struct LeafStruct {
|
|
a:int;
|
|
b:double;
|
|
}
|
|
|
|
table WrapperTable {
|
|
// A normal 32-bit sized vector that could be very far away (64-bit address).
|
|
vector:[int8] (offset64);
|
|
}
|
|
|
|
table RootTable {
|
|
// A normal 32-bit sized vector, that could be very far away (64-bit address).
|
|
far_vector:[ubyte] (offset64);
|
|
|
|
// An inplace value just to check that vtable offsets are correct.
|
|
a:int;
|
|
|
|
// A normal 32-bit sized string, that could be very far away (64-bit address).
|
|
far_string:string (offset64);
|
|
|
|
// A big 64-bit sized vector, that could be very far away (64-bit address).
|
|
big_vector:[ubyte] (vector64);
|
|
|
|
// A normal 32-bit sized string that is no far away (32-bit address).
|
|
near_string:string;
|
|
|
|
// A big 64-bit sized vector that is a nested flatbuffers (64-bit address).
|
|
nested_root:[ubyte] (vector64, nested_flatbuffer: "RootTable");
|
|
|
|
// A normal 32-bit size vector of structs, that could be very far away
|
|
// (64-bit address)
|
|
far_struct_vector:[LeafStruct] (offset64);
|
|
|
|
// A big 64-bit size vector of structs that could be very far away
|
|
// (64-bit address)
|
|
big_struct_vector:[LeafStruct] (vector64);
|
|
|
|
// A normal 32-bit size vector of tables. Currently 64-bit vectors don't
|
|
// support tables as it would require serializing a table (32-bit) before the
|
|
// vector (64-bit), which is not allowed.
|
|
//
|
|
// This demonstrates how you could have many vectors in the buffer, by
|
|
// effectively having a vector of 64-bit vectors. The IDL doesn't support
|
|
// nested vecotrs (e.g.: [[type]] ), so going through a wrapper table allows
|
|
// this.
|
|
many_vectors:[WrapperTable];
|
|
|
|
// A vector that has force_align to test that the 32/64 bit region of the
|
|
// builder is respected.
|
|
forced_aligned_vector:[ubyte] (vector64, force_align:32);
|
|
}
|
|
|
|
root_type RootTable;
|