inicpp
C++ parser of INI files with schema validation.
string_utils.h
1 #ifndef INICPP_STRING_UTILS_H
2 #define INICPP_STRING_UTILS_H
3 
4 #include "exception.h"
5 #include "types.h"
6 #include <algorithm>
7 #include <cctype>
8 #include <sstream>
9 #include <string>
10 #include <vector>
11 
12 namespace inicpp
13 {
18  namespace string_utils
19  {
25  std::string left_trim(const std::string &str);
31  std::string right_trim(const std::string &str);
37  std::string trim(const std::string &str);
44  bool find_needle(const std::string &haystack, const std::string &needle);
51  bool starts_with(const std::string &str, const std::string &search_str);
58  bool ends_with(const std::string &str, const std::string &search_str);
65  std::vector<std::string> split(const std::string &str, char delim);
66 
67 
75  template <typename ReturnType> ReturnType parse_string(const std::string &value, const std::string &option_name)
76  {
77  throw invalid_type_exception("Invalid option type");
78  }
82  template <> string_ini_t parse_string<string_ini_t>(const std::string &value, const std::string &);
90  template <> boolean_ini_t parse_string<boolean_ini_t>(const std::string &value, const std::string &option_name);
98  template <> enum_ini_t parse_string<enum_ini_t>(const std::string &value, const std::string &option_name);
106  template <> float_ini_t parse_string<float_ini_t>(const std::string &value, const std::string &option_name);
114  template <> signed_ini_t parse_string<signed_ini_t>(const std::string &value, const std::string &option_name);
122  template <>
123  unsigned_ini_t parse_string<unsigned_ini_t>(const std::string &value, const std::string &option_name);
124  }
125 
127  namespace inistd
128  {
130  using std::to_string;
132  std::string to_string(const enum_ini_t &value);
133  };
134 }
135 
136 #endif // INICPP_STRING_UTILS_H
float_ini_t parse_string< float_ini_t >(const std::string &value, const std::string &option_name)
std::string trim(const std::string &str)
signed_ini_t parse_string< signed_ini_t >(const std::string &value, const std::string &option_name)
std::string right_trim(const std::string &str)
bool starts_with(const std::string &str, const std::string &search_str)
string_ini_t parse_string< string_ini_t >(const std::string &value, const std::string &)
ReturnType parse_string(const std::string &value, const std::string &option_name)
Definition: string_utils.h:75
Definition: config.h:15
bool ends_with(const std::string &str, const std::string &search_str)
std::string to_string(const enum_ini_t &value)
unsigned_ini_t parse_string< unsigned_ini_t >(const std::string &value, const std::string &option_name)
std::vector< std::string > split(const std::string &str, char delim)
enum_ini_t parse_string< enum_ini_t >(const std::string &value, const std::string &option_name)
boolean_ini_t parse_string< boolean_ini_t >(const std::string &value, const std::string &option_name)
bool find_needle(const std::string &haystack, const std::string &needle)
std::string left_trim(const std::string &str)