diff options
| author | Dan Engelbrecht <[email protected]> | 2022-04-26 00:40:36 +0200 |
|---|---|---|
| committer | Dan Engelbrecht <[email protected]> | 2022-06-13 12:06:27 +0200 |
| commit | 62e5a5a5537bfacd8e7dc8197b692763dce5bee4 (patch) | |
| tree | 274e676c89c760dc62ad722b2df716d1460b5911 /zencore/compactbinarybuilder.cpp | |
| parent | more WIP (diff) | |
| download | zen-62e5a5a5537bfacd8e7dc8197b692763dce5bee4.tar.xz zen-62e5a5a5537bfacd8e7dc8197b692763dce5bee4.zip | |
WIP
Diffstat (limited to 'zencore/compactbinarybuilder.cpp')
| -rw-r--r-- | zencore/compactbinarybuilder.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
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); |