11class BinaryStream :
public ::ReadOnlyBinaryStream {
23 ::ll::TypedStorage<1, 1, bool> controlValue;
25 ::ll::TypedStorage<8, 8, char const*> docFieldName;
31 inline void writeType(T
const& x,
char const* =
nullptr,
char const* =
nullptr) {
32 serialize<T>::write(x, *
this);
35 MCTAPI
void writeType(
class BlockPos const&,
char const*,
char const*);
36 MCTAPI
void writeType(
class Vec3 const&,
char const*,
char const*);
38 MCTAPI
void writeType(
class BaseGameVersion const&,
char const*,
char const*);
39 MCTAPI
void writeType(
struct ActorLink const&,
char const*,
char const*);
43 BinaryStream(std::string& buffer) : ReadOnlyBinaryStream(buffer, false), mBuffer(buffer) {}
48 ::std::string& mBuffer;
54 BinaryStream& operator=(BinaryStream
const&);
55 BinaryStream(BinaryStream
const&);
60 BinaryStream& operator=(BinaryStream
const&);
61 BinaryStream(BinaryStream
const&);
67 virtual ~BinaryStream() ;
69 virtual void writeBool(
bool value,
char const* docFieldName,
char const* docFieldNotes);
71 virtual void writeByte(uchar value,
char const* docFieldName,
char const* docFieldNotes);
73 virtual void writeUnsignedShort(ushort value,
char const* docFieldName,
char const* docFieldNotes);
75 virtual void writeSignedShort(
short value,
char const* docFieldName,
char const* docFieldNotes);
77 virtual void writeUnsignedInt(uint value,
char const* docFieldName,
char const* docFieldNotes);
79 virtual void writeSignedBigEndianInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
81 virtual void writeSignedInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
83 virtual void writeUnsignedInt64(uint64 value,
char const* docFieldName,
char const* docFieldNotes);
85 virtual void writeSignedInt64(int64 value,
char const* docFieldName,
char const* docFieldNotes);
87 virtual void writeUnsignedVarInt(uint uvalue,
char const* docFieldName,
char const* docFieldNotes);
89 virtual void writeUnsignedVarInt64(uint64 uvalue,
char const* docFieldName,
char const* docFieldNotes);
91 virtual void writeVarInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
93 virtual void writeVarInt64(int64 value,
char const* docFieldName,
char const* docFieldNotes);
95 virtual void writeDouble(
double value,
char const* docFieldName,
char const* docFieldNotes);
97 virtual void writeFloat(
float value,
char const* docFieldName,
char const* docFieldNotes);
99 virtual void writeFixedFloat(
float value,
char const* docFieldName,
char const* docFieldNotes,
double size);
101 virtual void writeNormalizedFloat(
float value,
char const* docFieldName,
char const* docFieldNotes);
103 virtual void writeString(::std::string_view value,
char const* docFieldName,
char const* docFieldNotes);
105 virtual void writeIf(
107 char const* docFieldName,
108 ::brstd::function_ref<
void(::BinaryStream&)>
const& writeIfTrue,
109 ::std::optional<::brstd::function_ref<
void(::BinaryStream&)>>
const& writeIfFalse
112 virtual void writeConditional(
113 char const* docFieldName,
114 ::std::initializer_list<::BinaryStream::ConditionBlock>&& conditions,
115 ::std::optional<::brstd::function_ref<
void(::BinaryStream&)>>
const& writeDefault
118 virtual void branchingWrite_DEPRECATED(
119 ::std::function<
void(::BinaryStream&,
int)>&& branchWriter,
123 char const* controlDocFieldName
126 virtual void branchingWrite_DEPRECATED(
127 ::std::function<
void(::BinaryStream&,
int)>&& branchWriter,
129 ::std::vector<int>
const& docControlSet,
130 char const* controlDocFieldName
133 virtual bool writeTypeBegin_DocHelper(
char const*,
char const*,
char const*);
135 virtual void writeTypeEnd_DocHelper();
137 virtual void writeEnum_DocHelper(
char const*,
char const*);
139 virtual void _writeArray(
140 ::std::function<
void(::BinaryStream&)>&& sizeWriter,
141 ::std::function<
void(::BinaryStream&)>&& writer,
142 char const* docFieldName,
143 char const* docFieldNotes
150 MCAPI BinaryStream(::std::string& buffer,
bool copyBuffer);
153 MCAPI
void write(
void const* origin, uint64 num);
155 MCAPI
void writeRawBytes(::buffer_span<uchar> bytes,
char const* docFieldName,
char const* docFieldNotes);
166 MCAPI
void* $ctor(::std::string& buffer,
bool copyBuffer);
178 MCAPI
void $writeBool(
bool value,
char const* docFieldName,
char const* docFieldNotes);
180 MCAPI
void $writeByte(uchar value,
char const* docFieldName,
char const* docFieldNotes);
182 MCFOLD
void $writeUnsignedShort(ushort value,
char const* docFieldName,
char const* docFieldNotes);
184 MCFOLD
void $writeSignedShort(
short value,
char const* docFieldName,
char const* docFieldNotes);
186 MCFOLD
void $writeUnsignedInt(uint value,
char const* docFieldName,
char const* docFieldNotes);
188 MCAPI
void $writeSignedBigEndianInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
190 MCFOLD
void $writeSignedInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
192 MCFOLD
void $writeUnsignedInt64(uint64 value,
char const* docFieldName,
char const* docFieldNotes);
194 MCFOLD
void $writeSignedInt64(int64 value,
char const* docFieldName,
char const* docFieldNotes);
196 MCAPI
void $writeUnsignedVarInt(uint uvalue,
char const* docFieldName,
char const* docFieldNotes);
198 MCAPI
void $writeUnsignedVarInt64(uint64 uvalue,
char const* docFieldName,
char const* docFieldNotes);
200 MCAPI
void $writeVarInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
202 MCAPI
void $writeVarInt64(int64 value,
char const* docFieldName,
char const* docFieldNotes);
204 MCAPI
void $writeDouble(
double value,
char const* docFieldName,
char const* docFieldNotes);
206 MCAPI
void $writeFloat(
float value,
char const* docFieldName,
char const* docFieldNotes);
208 MCAPI
void $writeFixedFloat(
float value,
char const* docFieldName,
char const* docFieldNotes,
double size);
210 MCAPI
void $writeNormalizedFloat(
float value,
char const* docFieldName,
char const* docFieldNotes);
212 MCAPI
void $writeString(::std::string_view value,
char const* docFieldName,
char const* docFieldNotes);
216 char const* docFieldName,
217 ::brstd::function_ref<
void(::BinaryStream&)>
const& writeIfTrue,
218 ::std::optional<::brstd::function_ref<
void(::BinaryStream&)>>
const& writeIfFalse
221 MCAPI
void $writeConditional(
222 char const* docFieldName,
223 ::std::initializer_list<::BinaryStream::ConditionBlock>&& conditions,
224 ::std::optional<::brstd::function_ref<
void(::BinaryStream&)>>
const& writeDefault
227 MCFOLD
void $branchingWrite_DEPRECATED(
228 ::std::function<
void(::BinaryStream&,
int)>&& branchWriter,
232 char const* controlDocFieldName
235 MCFOLD
void $branchingWrite_DEPRECATED(
236 ::std::function<
void(::BinaryStream&,
int)>&& branchWriter,
238 ::std::vector<int>
const& docControlSet,
239 char const* controlDocFieldName
242 MCFOLD
bool $writeTypeBegin_DocHelper(
char const*,
char const*,
char const*);
244 MCFOLD
void $writeTypeEnd_DocHelper();
246 MCFOLD
void $writeEnum_DocHelper(
char const*,
char const*);
248 MCAPI
void $_writeArray(
249 ::std::function<
void(::BinaryStream&)>&& sizeWriter,
250 ::std::function<
void(::BinaryStream&)>&& writer,
251 char const* docFieldName,
252 char const* docFieldNotes