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

Method WriteData

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

Source from the content-addressed store, hash-verified

53}
54
55func (s boolArraySerializer) WriteData(ctx *WriteContext, value reflect.Value) {
56 buf := ctx.Buffer()
57 length := value.Len()
58 buf.WriteLength(length)
59 if length > 0 {
60 if value.CanAddr() {
61 // Fast path: direct memory copy - bool is 1 byte in Go
62 ptr := value.Addr().UnsafePointer()
63 buf.WriteBinary(unsafe.Slice((*byte)(ptr), length))
64 } else {
65 // Slow path for non-addressable arrays
66 for i := 0; i < length; i++ {
67 if value.Index(i).Bool() {
68 buf.WriteByte(1)
69 } else {
70 buf.WriteByte(0)
71 }
72 }
73 }
74 }
75}
76
77func (s boolArraySerializer) Write(ctx *WriteContext, refMode RefMode, writeType bool, hasGenerics bool, value reflect.Value) {
78 writeArrayRefAndType(ctx, refMode, writeType, value, BOOL_ARRAY)

Callers 1

WriteMethod · 0.95

Calls 7

LenMethod · 0.80
SliceMethod · 0.80
BoolMethod · 0.80
BufferMethod · 0.45
WriteLengthMethod · 0.45
WriteBinaryMethod · 0.45
WriteByteMethod · 0.45

Tested by

no test coverage detected