fix: enumparser capitalize everything to avoid issues
This commit is contained in:
		
							parent
							
								
									3ae2fe3272
								
							
						
					
					
						commit
						2fee12d930
					
				|  | @ -12,12 +12,26 @@ template <typename EnumType> | |||
| struct EnumParser { | ||||
|   EnumParser() {} | ||||
| 
 | ||||
|   // Helper function to capitalize a string
 | ||||
|   std::string capitalizeString(const std::string& str) { | ||||
|     std::string result = str; | ||||
|     std::transform(result.begin(), result.end(), result.begin(), | ||||
|                    [](unsigned char c) { return std::toupper(c); }); | ||||
|     return result; | ||||
|   } | ||||
| 
 | ||||
|   EnumType parseStringToEnum(const std::string& str, | ||||
|                              const std::map<std::string, EnumType>& enumMap) { | ||||
|     // Convert the input string to uppercase
 | ||||
|     std::string uppercaseStr = str; | ||||
|     std::transform(uppercaseStr.begin(), uppercaseStr.end(), uppercaseStr.begin(), | ||||
|                    [](unsigned char c) { return std::toupper(c); }); | ||||
|     std::string uppercaseStr = capitalizeString(str); | ||||
| 
 | ||||
|     // Capitalize the map keys before searching
 | ||||
|     std::map<std::string, EnumType> capitalizedEnumMap; | ||||
|     std::transform(enumMap.begin(), enumMap.end(), | ||||
|                    std::inserter(capitalizedEnumMap, capitalizedEnumMap.end()), | ||||
|                    [this](const auto& pair) { | ||||
|                      return std::make_pair(capitalizeString(pair.first), pair.second); | ||||
|                    }); | ||||
| 
 | ||||
|     // Return enum match of string
 | ||||
|     auto it = enumMap.find(uppercaseStr); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue