У меня есть прото с сообщением, содержащим расширения
message MsgA
{
extensions 10 to 50;
}
У меня есть другой прото, у которого есть расширения (показаны только 1 из расширений ниже)
extend MsgA
{
optional MsgB msgB = 10;
}
message MsgB
{
required int32 value = 1;
}
С помощью кода protobuf я могу получить дескриптор и FileDescriptor для 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?