include/vk_value_serialization.hpp
std::string formatString(std::string str) {
  // Trim left
  std::size_t cutOffset = 0;
  for (auto c : str) {
    if (::isalnum(c))
      break;
    else
      ++cutOffset;
  }
  str = str.substr(cutOffset);

  // Trim right
  cutOffset = 0;
  for (std::size_t i = 0; i < str.size(); ++i) {
    if (::isalnum(str[i]))
      cutOffset = i + 1;
  }
  str = str.substr(0, cutOffset);

  std::replace(str.begin(), str.end(), ' ', '_');
  std::for_each(str.begin(), str.end(), [](char &c) { c = ::toupper(c); });

  return str;
}
/**
 * @brief Takes a given string and formats it for use with parsing
 * @param str The string to format
 * @return Formatted string
 *
 * First, any non alphanumeric characters are trimmed from both ends of the string.
 * After than, any spaces are replaced with underscores, and finally all the characters are
 * capitalized. This will generate the string closest to the original ones found in the XML spec.
 */
@brief Takes a given string and formats it for use with parsing
@param str The string to format
@return Formatted string

First, any non alphanumeric characters are trimmed from both ends of the string.
After than, any spaces are replaced with underscores, and finally all the characters are
capitalized. This will generate the string closest to the original ones found in the XML spec.
@brief Takes a given string and formats it for use with parsing @param str The string to format @return Formatted string First any non alphanumeric characters are trimmed from both ends of the string . After than any spaces are replaced with underscores and finally all the characters are capitalized . This will generate the string closest to the original ones found in the XML spec .
std::string formatString(std::string str) {
  std::size_t cutOffset = 0;
  for (auto c : str) {
    if (::isalnum(c))
      break;
    else
      ++cutOffset;
  }
  str = str.substr(cutOffset);
  cutOffset = 0;
  for (std::size_t i = 0; i < str.size(); ++i) {
    if (::isalnum(str[i]))
      cutOffset = i + 1;
  }
  str = str.substr(0, cutOffset);
  std::replace(str.begin(), str.end(), ' ', '_');
  std::for_each(str.begin(), str.end(), [](char &c) { c = ::toupper(c); });
  return str;
}
std :: string formatString ( std :: string str ) { std :: size_t cutOffset = 0 ; for ( auto c : str ) { if ( :: isalnum ( c ) ) break ; else ++ cutOffset ; } str = str . substr ( cutOffset ) ; cutOffset = 0 ; for ( std :: size_t i = 0 ; i < str . size ( ) ; ++ i ) { if ( :: isalnum ( str [ i ] ) ) cutOffset = i + 1 ; } str = str . substr ( 0 , cutOffset ) ; std :: replace ( str . begin ( ) , str . end ( ) , ' ' , ' ' ) ; std :: for_each ( str . begin ( ) , str . end ( ) , [ ] ( char & c ) { c = :: toupper ( c ) ; } ) ; return str ; }
@brief Takes a given string and formats it for use with parsing
 @param str The string to format
 @return Formatted string
@brief Takes a given string and formats it for use with parsing @param str The string to format @return Formatted string
// Trim left // Trim right