Protobuf:如何以文本格式包含另一个文件

时间:2019-01-29 18:19:09

标签: protocol-buffers

这是一个简单的示例,用于说明我要解决的问题。

可以说我有一个main.proto定义的协议缓冲区:

syntax = "proto2";
package test.protos;

message A {
  required uint32 a_value = 1;
  optional B values = 2;
}

message B {
  required uint32 v1 = 1;
  required uint32 v2 = 1;
}

我也有A的许多配置,而B仅有一些“标准”配置(我会不时更改)。我想与B分别定义一组A的配置文件,并包含这些文件,而不是在我进行以下操作时将B的值复制并粘贴到每个配置中改变。

要继续该示例,我将拥有以下文件:

//b1.config
v1: 1
v2: 2

//b2.config
v1: 2
v2: 1

//a1.config
a_value: 1
values {import b1}

//a2.config
a_value: 2
values {import b1}

//a3.config
a_value: 3
values {import b2}

//a4.config
a_value: 4
values {import b2}

现在假设我需要将b1.v2更改为3。如果有某些导入功能,我只需要在b1.config中更改1个值,没有它,我需要在2个位置中更改它。

protobuf中是否存在这种东西?如果可以,我该如何实现?

0 个答案:

没有答案