Вот простой пример, иллюстрирующий проблему, которую я пытаюсь решить.
Допустим, у меня есть буфер протокола, определенный как 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
.Если есть какая-то функция импорта, мне нужно всего лишь изменить 1 значение в b1.config
, без него мне нужно изменить его в 2 местах.
Существует ли такая вещь в protobuf?Если да, то как мне этого добиться?