in datahub/binaryrecord.go [394:425]
func (serializer *binaryRecordContextSerializer) serializeBinaryRecord(writer *bytes.Buffer, bRecord *binaryRecord) error {
if bRecord.header == nil {
bRecord.header = newBinaryRecordHeader(bRecord.schemaVersion, bRecord.getRecordSize(), bRecord.nextOffset)
}
headerBuf := serializer.serializeRecordHeader(bRecord.header)
copy(bRecord.data, headerBuf)
_, err := writer.Write(bRecord.data)
if err != nil {
return err
}
if err = binary.Write(writer, binary.LittleEndian, int32(len(bRecord.attributes))); err != nil {
return err
}
for key, val := range bRecord.attributes {
if err = binary.Write(writer, binary.LittleEndian, int32(len(key))); err != nil {
return err
}
if _, err = writer.WriteString(key); err != nil {
return err
}
if err = binary.Write(writer, binary.LittleEndian, int32(len(val))); err != nil {
return err
}
if _, err = writer.WriteString(val); err != nil {
return err
}
}
return nil
}