(ctx *WriteContext, value reflect.Value)
| 309 | } |
| 310 | |
| 311 | func (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 | |
| 330 | func (s int64ArraySerializer) Write(ctx *WriteContext, refMode RefMode, writeType bool, hasGenerics bool, value reflect.Value) { |
| 331 | writeArrayRefAndType(ctx, refMode, writeType, value, INT64_ARRAY) |
no test coverage detected