in memstore/common/data_type.go [224:265]
func ConvertValueForType(dataType DataType, value interface{}) (interface{}, error) {
ok := false
var out interface{}
switch dataType {
case Bool:
out, ok = ConvertToBool(value)
case SmallEnum:
fallthrough
case Uint8:
out, ok = ConvertToUint8(value)
case Int8:
out, ok = ConvertToInt8(value)
case Int16:
out, ok = ConvertToInt16(value)
case BigEnum:
fallthrough
case Uint16:
out, ok = ConvertToUint16(value)
case Uint32:
out, ok = ConvertToUint32(value)
case Int32:
out, ok = ConvertToInt32(value)
case Int64:
out, ok = ConvertToInt64(value)
case Float32:
out, ok = ConvertToFloat32(value)
case UUID:
out, ok = ConvertToUUID(value)
case GeoPoint:
out, ok = ConvertToGeoPoint(value)
case GeoShape:
out, ok = ConvertToGeoShape(value)
default:
if IsArrayType(dataType) {
return ConvertToArrayValue(dataType, value)
}
}
if !ok {
return nil, utils.StackError(nil, "Invalid data value %v for data type %s", value, DataTypeName[dataType])
}
return out, nil
}