| #pragma once |
| |
| #include "utils/conversion.hpp" |
| |
| #include <array> |
| #include <cstdint> |
| #include <string_view> |
| |
| enum class OperationType : uint32_t |
| { |
| single, |
| max, |
| min, |
| avg, |
| sum |
| }; |
| |
| namespace utils |
| { |
| |
| constexpr std::array<std::pair<std::string_view, OperationType>, 5> |
| convDataOperationType = { |
| {std::make_pair<std::string_view, OperationType>("SINGLE", |
| OperationType::single), |
| std::make_pair<std::string_view, OperationType>("MAX", |
| OperationType::max), |
| std::make_pair<std::string_view, OperationType>("MIN", |
| OperationType::min), |
| std::make_pair<std::string_view, OperationType>("AVG", |
| OperationType::avg), |
| std::make_pair<std::string_view, OperationType>("SUM", |
| OperationType::sum)}}; |
| |
| inline OperationType |
| toOperationType(std::underlying_type_t<OperationType> value) |
| { |
| return toEnum<OperationType, OperationType::single, OperationType::sum>( |
| value); |
| } |
| |
| inline OperationType stringToOperationType(const std::string& value) |
| { |
| return stringToEnum(convDataOperationType, value); |
| } |
| |
| inline std::string enumToString(OperationType value) |
| { |
| return std::string(enumToString(convDataOperationType, value)); |
| } |
| |
| } // namespace utils |