Базовая кодировка двух спецификаций будет идентична при использовании двоичного вывода.
$> echo 'group_properties { name: "Bob", some_property_1: 6 }' \
| protoc nested.proto --encode='AddGroupsRequest' \
| xxd
00000000: 0a07 0a03 426f 6210 06 ....Bob..
$> echo 'group_properties { name: "Bob", some_property_1: 6 }' \
| protoc sibling.proto --encode='AddGroupsRequest' \
| xxd
00000000: 0a07 0a03 426f 6210 06 ....Bob..
Единственное решение - если вы хотите, чтобы сгенерированное имя класса C ++ было AddGroupsRequest_GroupProperties
( во вложенной форме) или если вам нужен независимый тип GroupProperties
, что в значительной степени является предпочтением. Обратите внимание, что вы можете изменить это позже, не нарушая уже закодированные сообщения.