例如,这是 protobuf 模式代码,我想通过 flatbuffer 模式重写它们?代码是什么样的?

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

谢谢我的兄弟。

最佳答案

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

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

table Yy {
  name:string;
}

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

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

关于protocol-buffers - 如何使用 flatbuffer 模式重写 protobuf 方案?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32759826/

10-14 13:20