From e68e0d9a5130e8bc0b634572b7fd44b9bfc0f8ef Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 30 Oct 2021 21:08:43 +0800 Subject: ... --- src/common/String.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/common/String.cpp') 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 @@ -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; -- cgit v1.2.3