Допустим, у меня есть следующий IDL-файл flatbuffer:
table Monster {
mana:short = 150;
inventory:[ubyte]; // Vector of scalars.
}
И я хочу сериализовать массив из 2 Monster
объектов в буфере.
Видимо, это возможносоздать следующую схему памяти для общего буфера при сериализации данных:
ArrayOfUBytesForInventoryOfMonster1|ArrayOfUBytesForInventoryOfMonster2|Monster1Data|Monster2Data
. Это означает, что теперь все поля inventory
находятся в смежной области памяти.
Однако это такМожно также сделать это в поле mana
?т.е. я хочу сериализовать свои объекты с этим представлением в памяти:
ArrayOfUBytesForInventoryOfMonster1|ArrayOfUBytesForInventoryOfMonster2|Monster1ManaValue|Monster2ManaValue|Monster1Data|Monster2Data.
, что приводит к преобразованию всех значений "маны" в необработанный массив в памяти.
Возможно лисделать это с Flatbuffers?Похоже, что поля могут быть сериализованы только после запуска самого объекта