func()

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
}