3

例如,这是 protobuf 架构代码,我想用 flatbuffer 架构重写它们吗?代码是什么样的?

    message Xx {
    required uint32 id = 1;
    optional string name = 2;
    message Yy {
        optional string name = 1;
    }
    repeated Yy y = 3;
}

谢谢你,我的兄弟。

4

1 回答 1

11

FlatBuffers 内置了 .proto 翻译,尝试一下flatc --proto myschema.proto,就会得到对应的 .fbs 文件。

但是,在您的情况下,您有嵌套的消息定义,这是 FlatBuffers 不支持的。因此,首先更改您的 .proto ,message Yy将其移到 .proto 之外message Xx。还要给它一个包名。你会得到:

table Yy {
  name:string;
}

table Xx {
  id:uint (required);
  name:string;
  y:[Yy];
}

编辑:FlatBuffers 现在甚至支持翻译嵌套的 .proto 定义。

于 2015-09-24T14:07:07.053 回答