Code review fixes

This commit is contained in:
Theo 2018-10-24 16:44:55 +01:00
parent 74daca63b7
commit 34281d5fe0

133
caste.go
View File

@ -1019,66 +1019,16 @@ func ToStringMapIntE(i interface{}) (map[string]int, error) {
return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i) return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i)
} }
kind := reflect.TypeOf(i).Elem().Kind() mVal := reflect.ValueOf(m)
switch kind { v := reflect.ValueOf(i)
case reflect.Int8: for _, keyVal := range v.MapKeys() {
for k, val := range i.(map[string]int8) { val, err := ToIntE(v.MapIndex(keyVal).Interface())
m[k] = ToInt(val) if err != nil {
return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i)
} }
return m, nil mVal.SetMapIndex(keyVal, reflect.ValueOf(val))
case reflect.Int16:
for k, val := range i.(map[string]int16) {
m[k] = ToInt(val)
}
return m, nil
case reflect.Int32:
for k, val := range i.(map[string]int32) {
m[k] = ToInt(val)
}
return m, nil
case reflect.Int64:
for k, val := range i.(map[string]int64) {
m[k] = ToInt(val)
}
return m, nil
case reflect.Uint:
for k, val := range i.(map[string]uint) {
m[k] = ToInt(val)
}
return m, nil
case reflect.Uint8:
for k, val := range i.(map[string]uint8) {
m[k] = ToInt(val)
}
return m, nil
case reflect.Uint16:
for k, val := range i.(map[string]uint16) {
m[k] = ToInt(val)
}
return m, nil
case reflect.Uint32:
for k, val := range i.(map[string]uint32) {
m[k] = ToInt(val)
}
return m, nil
case reflect.Float32:
for k, val := range i.(map[string]float32) {
m[k] = ToInt(val)
}
return m, nil
case reflect.Float64:
for k, val := range i.(map[string]float64) {
m[k] = ToInt(val)
}
return m, nil
case reflect.Bool:
for k, val := range i.(map[string]bool) {
m[k] = ToInt(val)
}
return m, nil
default:
return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i)
} }
return m, nil
} }
// ToStringMapInt64E casts an interface to a map[string]int64{} type. // ToStringMapInt64E casts an interface to a map[string]int64{} type.
@ -1109,67 +1059,16 @@ func ToStringMapInt64E(i interface{}) (map[string]int64, error) {
if reflect.TypeOf(i).Kind() != reflect.Map { if reflect.TypeOf(i).Kind() != reflect.Map {
return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i) return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i)
} }
mVal := reflect.ValueOf(m)
kind := reflect.TypeOf(i).Elem().Kind() v := reflect.ValueOf(i)
switch kind { for _, keyVal := range v.MapKeys() {
case reflect.Int8: val, err := ToInt64E(v.MapIndex(keyVal).Interface())
for k, val := range i.(map[string]int8) { if err != nil {
m[k] = ToInt64(val) return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i)
} }
return m, nil mVal.SetMapIndex(keyVal, reflect.ValueOf(val))
case reflect.Int16:
for k, val := range i.(map[string]int16) {
m[k] = ToInt64(val)
}
return m, nil
case reflect.Int32:
for k, val := range i.(map[string]int32) {
m[k] = ToInt64(val)
}
return m, nil
case reflect.Int:
for k, val := range i.(map[string]int) {
m[k] = ToInt64(val)
}
return m, nil
case reflect.Uint:
for k, val := range i.(map[string]uint) {
m[k] = ToInt64(val)
}
return m, nil
case reflect.Uint8:
for k, val := range i.(map[string]uint8) {
m[k] = ToInt64(val)
}
return m, nil
case reflect.Uint16:
for k, val := range i.(map[string]uint16) {
m[k] = ToInt64(val)
}
return m, nil
case reflect.Uint32:
for k, val := range i.(map[string]uint32) {
m[k] = ToInt64(val)
}
return m, nil
case reflect.Float32:
for k, val := range i.(map[string]float32) {
m[k] = ToInt64(val)
}
return m, nil
case reflect.Float64:
for k, val := range i.(map[string]float64) {
m[k] = ToInt64(val)
}
return m, nil
case reflect.Bool:
for k, val := range i.(map[string]bool) {
m[k] = ToInt64(val)
}
return m, nil
default:
return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i)
} }
return m, nil
} }
// ToSliceE casts an interface to a []interface{} type. // ToSliceE casts an interface to a []interface{} type.