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

Method WriteData

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

Source from the content-addressed store, hash-verified

116}
117
118func (s int8ArraySerializer) WriteData(ctx *WriteContext, value reflect.Value) {
119 buf := ctx.Buffer()
120 length := value.Len()
121 buf.WriteLength(length)
122 if length > 0 {
123 if value.CanAddr() {
124 // Fast path: direct memory copy - int8 is 1 byte
125 ptr := value.Addr().UnsafePointer()
126 buf.WriteBinary(unsafe.Slice((*byte)(ptr), length))
127 } else {
128 // Slow path for non-addressable arrays
129 for i := 0; i < length; i++ {
130 buf.WriteInt8(int8(value.Index(i).Int()))
131 }
132 }
133 }
134}
135
136func (s int8ArraySerializer) Write(ctx *WriteContext, refMode RefMode, writeType bool, hasGenerics bool, value reflect.Value) {
137 writeArrayRefAndType(ctx, refMode, writeType, value, INT8_ARRAY)

Callers 1

WriteMethod · 0.95

Calls 7

LenMethod · 0.80
SliceMethod · 0.80
int8Function · 0.50
BufferMethod · 0.45
WriteLengthMethod · 0.45
WriteBinaryMethod · 0.45
WriteInt8Method · 0.45

Tested by

no test coverage detected