| 57 | } |
| 58 | |
| 59 | func convertNumber(argType reflect.Type, jsonArg float64) (any, error) { |
| 60 | switch argType.Kind() { |
| 61 | case reflect.Int: |
| 62 | return int(jsonArg), nil |
| 63 | case reflect.Int8: |
| 64 | return int8(jsonArg), nil |
| 65 | case reflect.Int16: |
| 66 | return int16(jsonArg), nil |
| 67 | case reflect.Int32: |
| 68 | return int32(jsonArg), nil |
| 69 | case reflect.Int64: |
| 70 | return int64(jsonArg), nil |
| 71 | case reflect.Uint: |
| 72 | return uint(jsonArg), nil |
| 73 | case reflect.Uint8: |
| 74 | return uint8(jsonArg), nil |
| 75 | case reflect.Uint16: |
| 76 | return uint16(jsonArg), nil |
| 77 | case reflect.Uint32: |
| 78 | return uint32(jsonArg), nil |
| 79 | case reflect.Uint64: |
| 80 | return uint64(jsonArg), nil |
| 81 | case reflect.Float32: |
| 82 | return float32(jsonArg), nil |
| 83 | case reflect.Float64: |
| 84 | return jsonArg, nil |
| 85 | } |
| 86 | return nil, fmt.Errorf("invalid number type %s", argType) |
| 87 | } |
| 88 | |
| 89 | func convertComplex(argType reflect.Type, jsonArg any) (any, error) { |
| 90 | nativeArgVal := reflect.New(argType) |