Используйте перечисления из внешнего класса, чтобы избежать определения в.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;
};