Core/StringExt: Add Substring family of function (unicode-aware)

This commit is contained in:
SirLynix
2024-01-26 10:02:15 +01:00
parent 1f34bb58ea
commit 625b4f2d9f
4 changed files with 47 additions and 0 deletions

View File

@@ -48,6 +48,9 @@ namespace Nz
template<typename T> std::basic_string<T>& ReplaceStr(std::basic_string<T>& str, const T* from, const T* to);
template<typename T> std::basic_string<T>& ReplaceStr(std::basic_string<T>& str, std::basic_string_view<T> from, std::basic_string_view<T> to);
inline std::string_view Substring(std::string_view str, std::size_t index, UnicodeAware);
NAZARA_CORE_API std::string_view Substring(std::string_view str, std::size_t index, std::size_t count, UnicodeAware);
inline bool StartsWith(std::string_view str, std::string_view s);
NAZARA_CORE_API bool StartsWith(std::string_view lhs, std::string_view rhs, CaseIndependent);
NAZARA_CORE_API bool StartsWith(std::string_view lhs, std::string_view rhs, UnicodeAware);

View File

@@ -6,6 +6,7 @@
#include <algorithm>
#include <cctype>
#include <cstring>
#include <limits>
#include <Nazara/Core/Debug.hpp>
namespace Nz
@@ -109,6 +110,11 @@ namespace Nz
return str;
}
std::string_view Substring(std::string_view str, std::size_t index, UnicodeAware)
{
return Substring(str, index, std::numeric_limits<std::size_t>::max(), UnicodeAware{});
}
inline bool StartsWith(std::string_view str, std::string_view s)
{
#if NAZARA_CPP_VER >= NAZARA_CPP20