diff options
Diffstat (limited to 'src/lib/util/corestr.h')
-rw-r--r-- | src/lib/util/corestr.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lib/util/corestr.h b/src/lib/util/corestr.h index 81b04eeebaf..8caf014509b 100644 --- a/src/lib/util/corestr.h +++ b/src/lib/util/corestr.h @@ -16,6 +16,7 @@ #include <string> #include <string_view> +#include <algorithm> #include <cstring> @@ -51,6 +52,26 @@ int core_strnicmp(const char *s1, const char *s2, size_t n); int core_strwildcmp(const char *sp1, const char *sp2); bool core_iswildstr(const char *sp); +/* trim functions */ +template<typename TPred> +std::string_view strtrimleft(std::string_view str, TPred pred) +{ + std::string_view::iterator start = std::find_if( + str.begin(), + str.end(), + pred); + return str.substr(start - str.begin(), str.end() - start); +} + +template<typename TPred> +std::string_view strtrimright(std::string_view str, TPred pred) +{ + std::string_view::reverse_iterator end = std::find_if( + str.rbegin(), + str.rend(), + pred); + return str.substr(0, str.size() - (end - str.rbegin())); +} void strdelchr(std::string& str, char chr); void strreplacechr(std::string& str, char ch, char newch); |