From 62e5a5a5537bfacd8e7dc8197b692763dce5bee4 Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Tue, 26 Apr 2022 00:40:36 +0200 Subject: WIP --- zencore/compactbinarybuilder.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'zencore/compactbinarybuilder.cpp') diff --git a/zencore/compactbinarybuilder.cpp b/zencore/compactbinarybuilder.cpp index d4ccd434d..471bd62eb 100644 --- a/zencore/compactbinarybuilder.cpp +++ b/zencore/compactbinarybuilder.cpp @@ -148,6 +148,15 @@ CbWriter::Save(BinaryWriter& Writer) Writer.Write(Data.data(), Data.size()); } +IoBuffer +CbWriter::SaveAsIoBuffer() +{ + ZEN_ASSERT(States.size() == 1 && States.back().Flags == StateFlags::None); + // TEXT("It is invalid to save while there are incomplete write operations.")); + ZEN_ASSERT(Data.size() > 0); // TEXT("It is invalid to save when nothing has been written.")); + return IoBufferBuilder::MakeCloneFromMemory(Data.data(), Data.size()); +} + uint64_t CbWriter::GetSaveSize() const { @@ -468,9 +477,9 @@ void CbWriter::AddString(const std::string_view Value) { BeginField(); - const uint64_t Size = uint64_t(Value.size()); - const uint32_t SizeByteCount = MeasureVarUInt(Size); - const int64_t Offset = Data.size(); + const size_t Size = Value.size(); + const size_t SizeByteCount = MeasureVarUInt(Size); + const size_t Offset = Data.size(); Data.resize(Offset + SizeByteCount + Size); @@ -491,9 +500,9 @@ CbWriter::AddString(const std::wstring_view Value) ExtendableStringBuilder<128> Utf8; WideToUtf8(Value, Utf8); - const uint32_t Size = uint32_t(Utf8.Size()); - const uint32_t SizeByteCount = MeasureVarUInt(Size); - const int64_t Offset = Data.size(); + const size_t Size = Utf8.Size(); + const size_t SizeByteCount = MeasureVarUInt(Size); + const size_t Offset = Data.size(); Data.resize(Offset + SizeByteCount + Size); uint8_t* StringData = Data.data() + Offset; WriteVarUInt(Size, StringData); -- cgit v1.2.3