func()

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
}