| 81 | /// Return an error for an invalid Thrift enum value. |
| 82 | template <typename ENUM_TYPE> |
| 83 | static inline Status GetThriftEnum(const std::string& value, const std::string& desc, |
| 84 | const std::map<int, const char*>& enum_values_to_names, ENUM_TYPE* enum_value) { |
| 85 | for (const auto& e : enum_values_to_names) { |
| 86 | if (boost::algorithm::iequals(value, std::to_string(e.first)) |
| 87 | || boost::algorithm::iequals(value, e.second)) { |
| 88 | *enum_value = static_cast<ENUM_TYPE>(e.first); |
| 89 | return Status::OK(); |
| 90 | } |
| 91 | } |
| 92 | return Status(strings::Substitute("Invalid $0: '$1'. Valid values are $2.", desc, value, |
| 93 | GetThriftEnumValues(enum_values_to_names))); |
| 94 | } |
| 95 | } |
no test coverage detected