func convertType()

in cfn/encoding/unstringify.go [176:208]


func convertType(t reflect.Type, i interface{}) (reflect.Value, error) {
	pointer := false
	if t.Kind() == reflect.Ptr {
		pointer = true
		t = t.Elem()
	}

	switch t.Kind() {
	case reflect.Struct:
		return convertStruct(i, t, pointer)

	case reflect.Slice:
		return convertSlice(i, t, pointer)

	case reflect.Map:
		return convertMap(i, t, pointer)

	case reflect.String:
		return convertString(i, pointer)

	case reflect.Bool:
		return convertBool(i, pointer)

	case reflect.Int:
		return convertInt(i, pointer)

	case reflect.Float64:
		return convertFloat64(i, pointer)

	default:
		return zeroValue, fmt.Errorf("Unsupported type %v", t)
	}
}