У меня есть прототип с сообщением, содержащим расширения
message MsgA
{
extensions 10 to 50;
}
У меня есть другой прототип с расширениями (показано только одно из расширений ниже)
extend MsgA
{
optional MsgB msgB = 10;
}
message MsgB
{
required int32 value = 1;
}
С помощью кода protobuf я могу получить дескриптор и дескриптор файла для MsgB, а оттуда я могу получить расширение «msgB», имеющее тип FieldDescriptor. Я нахожу расширения с помощью кода protobuf по сравнению с использованием сгенерированного кода из прототипа MsgB, поскольку я пытаюсь выполнить итерацию по всем сообщениям расширения, а не жестко кодировать каждое из них в MutableExtension. (Я понимаю жестко закодированный способ MutableExtension(MsgB::msgB), но хочу использовать полученное расширение)
Я хочу заполнить изменяемое расширение MsgA расширением msgB, но MutableExtension принимает тип
(const ::google::protobuf::internal::ExtensionIdentifier& id) или
(const ::google::protobuf::internal::ExtensionIdentifier& id, int index)
Как я могу заполнить/создать MutableExtension с найденным расширением msgB или как создать ExtensionIdentifer msgB для использования в качестве входных данных для создания MutableExtension MsgA?