У меня есть структура Protobuf Google:Как установить значение по умолчанию для настроенного типа goob protobuf?
message ResourceProto{
optional int32 memory = 0;
optional int32 core = 1;
}
И у меня есть другая структура:
message AnotherProto{
optional ResourceProto resource = 0 [default to ResourceProto(100,1)];
....
}
Я знаю, как установить значение по умолчанию для нормального типа, как int
, String
, Bool
, но как назначить значение по умолчанию для настраиваемой структуры, что такое синтаксис? Скажем, установите значение по умолчанию resource
в AnotherProto
на memory = 100
и core = 1
?
Причина, по которой они не поддерживаются, объясняется главным образом сложностью реализации - сгенерированный код должен был бы создавать постоянные экземпляры этих значений по умолчанию, что сложно, и почти никто на самом деле не хочет эту функцию, сделайте это. Тем не менее, [Cap'n Proto] (https://capnproto.org) фактически поддерживает значения по умолчанию для совокупных типов (структуры и списки). (Раскрытие информации: Я являюсь автором Cap'n Proto, а также большей части кода Protobuf с открытым исходным кодом от Google.) –