Используйте перечисления из внешнего класса, чтобы избежать определения в.proto?

У меня есть три разных формата сообщений в коде, и я сделал все три.proto файла и скомпилировал. У меня уже есть другой, скажем, регулярный класс с большим количеством перечислений, и мне нужно использовать эти перечисления во всех трех классах. Есть ли способ использовать перечисления из внешнего-обычного класса и не определять в прото во всех трех файлах одинаковые перечисления?

1 ответ

Я не совсем уверен, что вы имеете в виду под обычным внешним классом...?

Если вы хотите определить перечисление в C++, а затем поместить его в Protobuf, просто поместите поле int в proto.

Но если вам нужно общее перечисление, используемое несколькими protos, вы можете использовать import:

common.proto:

package foo_common;

enum Color {
    red = 1;
    black = 2;
}

tree.proto:

package foo_tree;

import "common.proto";

message Node {
     optional foo_common.Color color = 1;
};    
Другие вопросы по тегам