(ctx *WriteContext, value reflect.Value)
| 116 | } |
| 117 | |
| 118 | func (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 | |
| 136 | func (s int8ArraySerializer) Write(ctx *WriteContext, refMode RefMode, writeType bool, hasGenerics bool, value reflect.Value) { |
| 137 | writeArrayRefAndType(ctx, refMode, writeType, value, INT8_ARRAY) |
no test coverage detected