func ConvertValueForType()

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
}