MCPcopy Create free account
hub / github.com/apache/fory / write

Method write

javascript/packages/core/lib/gen/collection.ts:184–239  ·  view source on GitHub ↗
(value: any, size: number)

Source from the content-addressed store, hash-verified

182 }
183
184 write(value: any, size: number) {
185 this.writeContext.writer.writeVarUint32Small7(size);
186 if (size === 0) {
187 return;
188 }
189 const { serializer, isSame, includeNone, trackingRef }
190 = this.writeElementsHeader(value);
191 if (isSame) {
192 serializer!.writeTypeInfo(value);
193 if (trackingRef) {
194 for (const item of value) {
195 if (!serializer!.writeRefOrNull(item)) {
196 serializer!.write(item);
197 }
198 }
199 } else if (includeNone) {
200 for (const item of value) {
201 if (item === null || item === undefined) {
202 this.writeContext.writer.writeInt8(RefFlags.NullFlag);
203 } else {
204 this.writeContext.writer.writeInt8(RefFlags.NotNullValueFlag);
205 serializer!.write(item);
206 }
207 }
208 } else {
209 for (const item of value) {
210 serializer!.write(item);
211 }
212 }
213 } else {
214 if (trackingRef) {
215 for (const item of value) {
216 const serializer
217 = this.writeContext.typeResolver.getSerializerByData(item);
218 serializer?.writeRef(item);
219 }
220 } else if (includeNone) {
221 for (const item of value) {
222 if (item === null || item === undefined) {
223 this.writeContext.writer.writeInt8(RefFlags.NullFlag);
224 } else {
225 const serializer
226 = this.writeContext.typeResolver.getSerializerByData(item);
227 this.writeContext.writer.writeInt8(RefFlags.NotNullValueFlag);
228 serializer!.writeNoRef(item);
229 }
230 }
231 } else {
232 for (const item of value) {
233 const serializer
234 = this.writeContext.typeResolver.getSerializerByData(item);
235 serializer!.writeNoRef(item);
236 }
237 }
238 }
239 }
240
241 read(

Callers

nothing calls this directly

Calls 9

writeElementsHeaderMethod · 0.95
writeNoRefMethod · 0.80
writeTypeInfoMethod · 0.65
writeRefOrNullMethod · 0.65
writeMethod · 0.65
writeRefMethod · 0.65
writeVarUint32Small7Method · 0.45
writeInt8Method · 0.45
getSerializerByDataMethod · 0.45

Tested by

no test coverage detected