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

Method WriteData

go/fory/array_primitive.go:311–328  ·  view source on GitHub ↗
(ctx *WriteContext, value reflect.Value)

Source from the content-addressed store, hash-verified

309}
310
311func (s int64ArraySerializer) WriteData(ctx *WriteContext, value reflect.Value) {
312 buf := ctx.Buffer()
313 length := value.Len()
314 size := length * 8
315 buf.WriteLength(size)
316 if length > 0 {
317 if value.CanAddr() && isLittleEndian {
318 // Fast path: direct memory copy - little-endian only
319 ptr := value.Addr().UnsafePointer()
320 buf.WriteBinary(unsafe.Slice((*byte)(ptr), size))
321 } else {
322 // Slow path for non-addressable arrays or big-endian
323 for i := 0; i < length; i++ {
324 buf.WriteInt64(value.Index(i).Int())
325 }
326 }
327 }
328}
329
330func (s int64ArraySerializer) Write(ctx *WriteContext, refMode RefMode, writeType bool, hasGenerics bool, value reflect.Value) {
331 writeArrayRefAndType(ctx, refMode, writeType, value, INT64_ARRAY)

Callers 1

WriteMethod · 0.95

Calls 6

LenMethod · 0.80
SliceMethod · 0.80
BufferMethod · 0.45
WriteLengthMethod · 0.45
WriteBinaryMethod · 0.45
WriteInt64Method · 0.45

Tested by

no test coverage detected