7#include "core/fxcrt/widetext_buffer.h"
9#include "core/fxcrt/fx_safe_types.h"
10#include "core/fxcrt/span_util.h"
15 return GetSize() /
sizeof(
wchar_t);
19 return reinterpret_span<
wchar_t>(GetMutableSpan());
23 return reinterpret_span<
const wchar_t>(GetSpan());
27 return WideStringView(GetWideSpan());
31 return WideString(AsStringView());
35 pdfium::span<
wchar_t> new_span = ExpandWideBuf(1);
39void WideTextBuffer::
Delete(size_t start_index, size_t count) {
40 DeleteBuf(start_index *
sizeof(
wchar_t), count *
sizeof(
wchar_t));
44 AppendSpan(pdfium::as_bytes(str.span()));
48 pdfium::span<
wchar_t> new_span = ExpandWideBuf(ascii.GetLength());
49 for (size_t i = 0; i < ascii.GetLength(); ++i)
50 new_span[i] = ascii[i];
55 AppendWideString(str);
59WideTextBuffer& WideTextBuffer::operator<<(
const WideString& str) {
60 AppendWideString(str.AsStringView());
64WideTextBuffer& WideTextBuffer::operator<<(
const wchar_t* lpsz) {
65 AppendWideString(WideStringView(lpsz));
69WideTextBuffer& WideTextBuffer::operator<<(
const WideTextBuffer& buf) {
70 AppendWideString(buf.AsStringView());
74pdfium::span<
wchar_t> WideTextBuffer::ExpandWideBuf(size_t char_count) {
75 size_t original_count = GetLength();
76 FX_SAFE_SIZE_T safe_bytes = char_count;
77 safe_bytes *=
sizeof(
wchar_t);
78 size_t bytes = safe_bytes.ValueOrDie();
81 return GetWideSpan().subspan(original_count);
pdfium::span< wchar_t > GetWideSpan()
void AppendChar(wchar_t wch)
void Delete(size_t start_index, size_t count)
pdfium::span< const wchar_t > GetWideSpan() const
WideString MakeString() const
WideStringView AsStringView() const
size_t GetLength() const override
StringViewTemplate< wchar_t > WideStringView
StringViewTemplate< char > ByteStringView