aboutsummaryrefslogtreecommitdiff
path: root/src/common/String.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/String.cpp')
-rw-r--r--src/common/String.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/common/String.cpp b/src/common/String.cpp
index 699d807f..ba31e6f6 100644
--- a/src/common/String.cpp
+++ b/src/common/String.cpp
@@ -1,4 +1,5 @@
#include "cru/common/String.hpp"
+#include "cru/common/Exception.hpp"
#include "cru/common/StringUtil.hpp"
#include <gsl/gsl>
@@ -214,6 +215,13 @@ std::string String::ToUtf8() const {
return cru::ToUtf8(std::u16string_view(data(), size()));
}
+void String::AppendCodePoint(CodePoint code_point) {
+ if (!Utf16EncodeCodePointAppendWithFunc(
+ code_point, [this](char16_t c) { this->push_back(c); })) {
+ throw TextEncodeException(u"Code point out of range.");
+ }
+}
+
Index String::IndexFromCodeUnitToCodePoint(Index code_unit_index) const {
auto iter = CodePointIterator();
Index result = 0;