in datahub/binaryrecord.go [525:554]
func (serializer *binaryRecordContextSerializer) dhRecord2BinaryRecord(record IRecord) (*binaryRecord, error) {
var err error
var bRecord *binaryRecord = nil
switch val := record.(type) {
case *TupleRecord:
bRecord, err = serializer.tuple2BinaryRecord(val)
if err != nil {
return nil, err
}
case *BlobRecord:
bRecord, err = serializer.blob2BinaryRecord(val)
if err != nil {
return nil, err
}
default:
return nil, fmt.Errorf("invalid record type %v", reflect.TypeOf(record))
}
attributes := record.GetAttributes()
for key, val := range attributes {
strVal, ok := val.(string)
if !ok {
return nil, fmt.Errorf("attribute only support map[string]string now")
}
bRecord.addAttribute(key, strVal)
}
return bRecord, nil
}