1 #pragma once 2 3 #include "utils/conversion.hpp" 4 5 #include <sdbusplus/exception.hpp> 6 7 #include <array> 8 #include <cstdint> 9 #include <string_view> 10 #include <type_traits> 11 12 enum class ErrorType : uint32_t 13 { 14 propertyConflict 15 }; 16 17 namespace utils 18 { 19 20 template <> 21 struct EnumTraits<ErrorType> 22 { 23 static constexpr auto propertyName = ConstexprString{"ErrorType"}; 24 }; 25 26 constexpr auto convDataErrorType = std::array{ 27 std::make_pair<std::string_view, ErrorType>("PropertyConflict", 28 ErrorType::propertyConflict)}; 29 toErrorType(std::underlying_type_t<ErrorType> value)30inline ErrorType toErrorType(std::underlying_type_t<ErrorType> value) 31 { 32 return toEnum<ErrorType, minEnumValue(convDataErrorType), 33 maxEnumValue(convDataErrorType)>(value); 34 } 35 toErrorType(const std::string & value)36inline ErrorType toErrorType(const std::string& value) 37 { 38 return toEnum(convDataErrorType, value); 39 } 40 enumToString(ErrorType value)41inline std::string enumToString(ErrorType value) 42 { 43 return std::string(enumToString(convDataErrorType, value)); 44 } 45 46 } // namespace utils 47