(num json.Number, ctype reflect.Type)
| 819 | var dummyNumber json.Number |
| 820 | |
| 821 | func convertJsonNumber(num json.Number, ctype reflect.Type) (interface{}, error) { |
| 822 | // ctype might be int64, float64, string, *int64, *float64, *string |
| 823 | // switch on ctype first |
| 824 | if ctype.Kind() == reflect.Pointer { |
| 825 | ctype = ctype.Elem() |
| 826 | } |
| 827 | if reflect.Int64 == ctype.Kind() { |
| 828 | if ival, err := num.Int64(); err == nil { |
| 829 | return ival, nil |
| 830 | } |
| 831 | return nil, fmt.Errorf("invalid number for int64: %s", num) |
| 832 | } |
| 833 | if reflect.Float64 == ctype.Kind() { |
| 834 | if fval, err := num.Float64(); err == nil { |
| 835 | return fval, nil |
| 836 | } |
| 837 | return nil, fmt.Errorf("invalid number for float64: %s", num) |
| 838 | } |
| 839 | if reflect.String == ctype.Kind() { |
| 840 | return num.String(), nil |
| 841 | } |
| 842 | return nil, fmt.Errorf("cannot convert number to %s", ctype) |
| 843 | } |
| 844 | |
| 845 | func SetBaseConfigValue(toMerge waveobj.MetaMapType) error { |
| 846 | m, cerrs := ReadWaveHomeConfigFile(SettingsFile) |
no test coverage detected