diff options
Diffstat (limited to 'lib/common')
-rw-r--r-- | lib/common/Utils.cpp | 36 | ||||
-rw-r--r-- | lib/common/Utils.h | 4 |
2 files changed, 40 insertions, 0 deletions
diff --git a/lib/common/Utils.cpp b/lib/common/Utils.cpp index a73a80da..4325dd88 100644 --- a/lib/common/Utils.cpp +++ b/lib/common/Utils.cpp @@ -95,6 +95,42 @@ void SplitString(std::string String, char SplitOn, std::vector<std::string> &rOu #endif*/ } +bool StartsWith(const std::string& prefix, const std::string& haystack) +{ + return haystack.size() >= prefix.size() && + haystack.substr(0, prefix.size()) == prefix; +} + +bool EndsWith(const std::string& suffix, const std::string& haystack) +{ + return haystack.size() >= suffix.size() && + haystack.substr(haystack.size() - suffix.size()) == suffix; +} + +std::string RemovePrefix(const std::string& prefix, const std::string& haystack) +{ + if(StartsWith(prefix, haystack)) + { + return haystack.substr(prefix.size()); + } + else + { + return ""; + } +} + +std::string RemoveSuffix(const std::string& suffix, const std::string& haystack) +{ + if(EndsWith(suffix, haystack)) + { + return haystack.substr(0, haystack.size() - suffix.size()); + } + else + { + return ""; + } +} + static std::string demangle(const std::string& mangled_name) { std::string demangled_name = mangled_name; diff --git a/lib/common/Utils.h b/lib/common/Utils.h index 3a5f0eb5..d306ce1c 100644 --- a/lib/common/Utils.h +++ b/lib/common/Utils.h @@ -18,6 +18,10 @@ std::string GetBoxBackupVersion(); void SplitString(std::string String, char SplitOn, std::vector<std::string> &rOutput); +bool StartsWith(const std::string& prefix, const std::string& haystack); +bool EndsWith(const std::string& prefix, const std::string& haystack); +std::string RemovePrefix(const std::string& prefix, const std::string& haystack); +std::string RemoveSuffix(const std::string& suffix, const std::string& haystack); void DumpStackBacktrace(); |