这是一个简单的示例,用于说明我要解决的问题。
可以说我有一个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中是否存在这种东西?如果可以,我该如何实现?