blob: 0f1d61e43ddde3a6759961217676df78ad93dd5b [file] [log] [blame]
Krzysztof Grobelny973b4bb2022-04-25 17:07:27 +02001#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
12enum class ErrorType : uint32_t
13{
14 propertyConflict
15};
16
17namespace utils
18{
19
20constexpr auto convDataErrorType =
21 std::array{std::make_pair<std::string_view, ErrorType>(
22 "PropertyConflict", ErrorType::propertyConflict)};
23
24inline ErrorType toErrorType(std::underlying_type_t<ErrorType> value)
25{
26 return toEnum<ErrorType, minEnumValue(convDataErrorType),
27 maxEnumValue(convDataErrorType)>(value);
28}
29
30inline ErrorType toErrorType(const std::string& value)
31{
32 return toEnum(convDataErrorType, value);
33}
34
35inline std::string enumToString(ErrorType value)
36{
37 return std::string(enumToString(convDataErrorType, value));
38}
39
40} // namespace utils