diff options
Diffstat (limited to 'src/common/String.cpp')
-rw-r--r-- | src/common/String.cpp | 8 |
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; |