假設proto中定義了一個enum枚舉:
enum UserStatus {
AWAY = 0;
ONLINE = 1;
OFFLINE = 2;
}
方法一:
std::string name = UserStatus_Name(UserStatus::AWAY);
(如果UserStatus嵌套在message類型MyMessage內,則使用MyMessage_UserStatus_Name(...))
name的值就是"AWAY"
方法二:
可以通過以下方法轉換name和value:
const google::protobuf::EnumDescriptor *descriptor = UserStatus_descriptor();
std::string name = descriptor->FindValueByNumber(UserStatus::ONLINE)->name();
int number = descriptor->FindValueByName("ONLINE")->number();
reference:
https://stackoverflow.com/questions/32161409/how-to-get-protobuf-enum-as-string/46470954#46470954