используя flatbuffers.Builder.Create * () - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу использовать flatbuf для сохранения структуры aquadtree. вот мой fbs файл


namespace com.generated;

struct Obj {
  hash:int;
  geohash:uint64;
}

table Tree {
  obj:[Obj];
  id:int;
  nodes:[Tree];
}

root_type Tree;

, а вот код, который я использую для создания объектов

var builder = new flatbuffers.Builder(0)
var Tree = com.generated.Tree;
var Obj = com.generated.Obj;

Tree.startTree(builder);
Tree.addId(builder, builder.createInt(1));
Tree.addObj(builder, Obj.createObj(builder, 36, 42));
var offset = Tree.endTree(builder);

Tree.startTree(builder);
Tree.addId(builder, builder.createInt(1));
Tree.addObj(builder, Obj.createObj(builder, 36, 42));
offset = Tree.endTree(builder);
builder.finish(offset);

в коде выше, у меня есть две проблемы: во-первых, builder.createInt(1) не существует. Поэтому я не знаю, как я могу создать целое число. И моя вторая проблема с созданием массива деревьев, я сейчас после Tree.end запускаю еще один Tree с тем же компоновщиком. Это правильный способ сделать это?

...