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;
53 BinaryStream& operator=(BinaryStream
const&);
54 BinaryStream(BinaryStream
const&);
59 virtual ~BinaryStream() ;
61 virtual void writeBool(
bool value,
char const* docFieldName,
char const* docFieldNotes);
63 virtual void writeByte(uchar value,
char const* docFieldName,
char const* docFieldNotes);
65 virtual void writeUnsignedShort(ushort value,
char const* docFieldName,
char const* docFieldNotes);
67 virtual void writeSignedShort(
short value,
char const* docFieldName,
char const* docFieldNotes);
69 virtual void writeUnsignedInt(uint value,
char const* docFieldName,
char const* docFieldNotes);
71 virtual void writeSignedBigEndianInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
73 virtual void writeSignedInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
75 virtual void writeUnsignedInt64(uint64 value,
char const* docFieldName,
char const* docFieldNotes);
77 virtual void writeSignedInt64(int64 value,
char const* docFieldName,
char const* docFieldNotes);
79 virtual void writeUnsignedVarInt(uint uvalue,
char const* docFieldName,
char const* docFieldNotes);
81 virtual void writeUnsignedVarInt64(uint64 uvalue,
char const* docFieldName,
char const* docFieldNotes);
83 virtual void writeVarInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
85 virtual void writeVarInt64(int64 value,
char const* docFieldName,
char const* docFieldNotes);
87 virtual void writeDouble(
double value,
char const* docFieldName,
char const* docFieldNotes);
89 virtual void writeFloat(
float value,
char const* docFieldName,
char const* docFieldNotes);
91 virtual void writeFixedFloat(
float value,
char const* docFieldName,
char const* docFieldNotes,
double size);
93 virtual void writeNormalizedFloat(
float value,
char const* docFieldName,
char const* docFieldNotes);
95 virtual void writeString(::std::string_view value,
char const* docFieldName,
char const* docFieldNotes);
99 char const* docFieldName,
100 ::brstd::function_ref<
void(::BinaryStream&)>
const& writeIfTrue,
101 ::std::optional<::brstd::function_ref<
void(::BinaryStream&)>>
const& writeIfFalse
104 virtual void writeConditional(
105 char const* docFieldName,
106 ::std::initializer_list<::BinaryStream::ConditionBlock>&& conditions,
107 ::std::optional<::brstd::function_ref<
void(::BinaryStream&)>>
const& writeDefault
110 virtual void branchingWrite_DEPRECATED(
111 ::std::function<
void(::BinaryStream&,
int)>&& branchWriter,
115 char const* controlDocFieldName
118 virtual void branchingWrite_DEPRECATED(
119 ::std::function<
void(::BinaryStream&,
int)>&& branchWriter,
121 ::std::vector<int>
const& docControlSet,
122 char const* controlDocFieldName
125 virtual void _writeArray(
126 ::std::function<
void(::BinaryStream&)>&& sizeWriter,
127 ::std::function<
void(::BinaryStream&)>&& writer,
128 char const* docFieldName,
129 char const* docFieldNotes
136 MCAPI BinaryStream(::std::string& buffer,
bool copyBuffer);
138 MCAPI_C
void write(
void const* origin, uint64 num);
140 MCAPI_C
void writeRawBytes(::buffer_span<uchar> bytes,
char const* docFieldName,
char const* docFieldNotes);
146 MCAPI_C
void* $ctor();
148 MCAPI
void* $ctor(::std::string& buffer,
bool copyBuffer);
160 MCAPI
void $writeBool(
bool value,
char const* docFieldName,
char const* docFieldNotes);
162 MCAPI
void $writeByte(uchar value,
char const* docFieldName,
char const* docFieldNotes);
164 MCFOLD
void $writeUnsignedShort(ushort value,
char const* docFieldName,
char const* docFieldNotes);
166 MCFOLD
void $writeSignedShort(
short value,
char const* docFieldName,
char const* docFieldNotes);
168 MCFOLD
void $writeUnsignedInt(uint value,
char const* docFieldName,
char const* docFieldNotes);
170 MCAPI
void $writeSignedBigEndianInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
172 MCFOLD
void $writeSignedInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
174 MCFOLD
void $writeUnsignedInt64(uint64 value,
char const* docFieldName,
char const* docFieldNotes);
176 MCFOLD
void $writeSignedInt64(int64 value,
char const* docFieldName,
char const* docFieldNotes);
178 MCAPI
void $writeUnsignedVarInt(uint uvalue,
char const* docFieldName,
char const* docFieldNotes);
180 MCAPI
void $writeUnsignedVarInt64(uint64 uvalue,
char const* docFieldName,
char const* docFieldNotes);
182 MCAPI
void $writeVarInt(
int value,
char const* docFieldName,
char const* docFieldNotes);
184 MCAPI
void $writeVarInt64(int64 value,
char const* docFieldName,
char const* docFieldNotes);
186 MCAPI
void $writeDouble(
double value,
char const* docFieldName,
char const* docFieldNotes);
188 MCAPI
void $writeFloat(
float value,
char const* docFieldName,
char const* docFieldNotes);
190 MCAPI
void $writeFixedFloat(
float value,
char const* docFieldName,
char const* docFieldNotes,
double size);
192 MCAPI
void $writeNormalizedFloat(
float value,
char const* docFieldName,
char const* docFieldNotes);
194 MCAPI
void $writeString(::std::string_view value,
char const* docFieldName,
char const* docFieldNotes);
198 char const* docFieldName,
199 ::brstd::function_ref<
void(::BinaryStream&)>
const& writeIfTrue,
200 ::std::optional<::brstd::function_ref<
void(::BinaryStream&)>>
const& writeIfFalse
203 MCAPI
void $writeConditional(
204 char const* docFieldName,
205 ::std::initializer_list<::BinaryStream::ConditionBlock>&& conditions,
206 ::std::optional<::brstd::function_ref<
void(::BinaryStream&)>>
const& writeDefault
209 MCFOLD
void $branchingWrite_DEPRECATED(
210 ::std::function<
void(::BinaryStream&,
int)>&& branchWriter,
214 char const* controlDocFieldName
217 MCFOLD
void $branchingWrite_DEPRECATED(
218 ::std::function<
void(::BinaryStream&,
int)>&& branchWriter,
220 ::std::vector<int>
const& docControlSet,
221 char const* controlDocFieldName
224 MCAPI
void $_writeArray(
225 ::std::function<
void(::BinaryStream&)>&& sizeWriter,
226 ::std::function<
void(::BinaryStream&)>&& writer,
227 char const* docFieldName,
228 char const* docFieldNotes