aboutsummaryrefslogtreecommitdiff
path: root/include/cru/common/String.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-09-09 17:55:40 +0800
committercrupest <crupest@outlook.com>2021-09-09 17:55:40 +0800
commit74aee8a6308445604b513ab37812ddc99365aa98 (patch)
tree4a0886df82af6baa248e62b97fa585e09be9470d /include/cru/common/String.hpp
parent700751108257a00ab1a6134fe0ca570acb3269a8 (diff)
downloadcru-74aee8a6308445604b513ab37812ddc99365aa98.tar.gz
cru-74aee8a6308445604b513ab37812ddc99365aa98.tar.bz2
cru-74aee8a6308445604b513ab37812ddc99365aa98.zip
...
Diffstat (limited to 'include/cru/common/String.hpp')
-rw-r--r--include/cru/common/String.hpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/include/cru/common/String.hpp b/include/cru/common/String.hpp
index 563e1606..4211a160 100644
--- a/include/cru/common/String.hpp
+++ b/include/cru/common/String.hpp
@@ -1,7 +1,9 @@
#pragma once
-
#include "Base.hpp"
+#include "StringUtil.hpp"
+#include "Range.hpp"
+
#include <cstdint>
#include <iterator>
@@ -127,6 +129,16 @@ class CRU_BASE_API String {
}
public:
+ Utf16CodePointIterator CodePointIterator() const {
+ return Utf16CodePointIterator(
+ std::u16string_view(reinterpret_cast<char16_t*>(buffer_), size_));
+ }
+
+ Index IndexFromCodeUnitToCodePoint(Index code_unit_index) const;
+ Index IndexFromCodePointToCodeUnit(Index code_point_index) const;
+ Range RangeFromCodeUnitToCodePoint(Range code_unit_range) const;
+ Range RangeFromCodePointToCodeUnit(Range code_point_range) const;
+
const char16_t* Char16CStr() const {
return reinterpret_cast<const char16_t*>(c_str());
}