#pragma once #include #include #include #include #include #include "util/string.hpp" namespace waybar::util { template //struct EnumParser { EnumType parseStringToEnum(const std::string& str, const std::map& enumMap) { std::string uppercaseStr = capitalize(str); std::map capitalizedEnumMap; std::transform( enumMap.begin(), enumMap.end(), std::inserter(capitalizedEnumMap, capitalizedEnumMap.end()), [](const auto& pair) { return std::make_pair(capitalize(pair.first), pair.second); }); auto it = capitalizedEnumMap.find(uppercaseStr); if (it != capitalizedEnumMap.end()) return it->second; throw std::invalid_argument("Invalid string representation for enum"); // } } } // namespace waybar::util