packed = true不生成:packed =>真正的Ruby Google协议缓冲区

时间:2016-10-26 12:03:04

标签: ruby macos protocol-buffers protoc

我正在使用具有Google协议缓冲区的ruby应用程序。

我的原型文件:

syntax = 'proto3'

message QuestionMessage {
  int32 id = 1;
  string question = 2;
  int32 font_id = 3;
  repeated int32 answers = 4 [packed=true];
}

当我运行protoc时,它会生成正确的ruby文件,但是:packed =>重复的int32命名答案缺少true。 生成的代码:

add_message "QuestionMessage" do
  optional :id, :int32, 1
  optional :question, :string, 2
  optional :font_id, :int32, 3
  repeated :answers, :int32, 4
end

我目前认为我的protoc没有为ruby文件生成正确的东西。但奇怪的是我有libprotoc版本3.1.0(从源代码构建),项目的gemfile也有版本3.1.0,除了生成:packed =>之外,一切都可以工作(编码和制作对象)。真正。有人能帮助我吗?我全神贯注但却找不到有同样问题的人。 B.t.w.添加:packet =>真的不起作用,因为谷歌不喜欢这样。

修改
我找到了解决方案。我用这个gem来生成我的ruby protoc文件。这些文件我可以编辑而不是google-protobuf gem生成的文件,你不能这样做。然后我补充说:packed =>通过脚本真实。不是最好的解决方案,但它是一种解决方案..

0 个答案:

没有答案