in cfn/encoding/unstringify.go [119:146]
func convertInt(i interface{}, pointer bool) (reflect.Value, error) {
var n int
switch v := i.(type) {
case int:
n = v
case float64:
n = int(v)
case string:
n64, err := strconv.ParseInt(v, 0, 32)
if err != nil {
return zeroValue, err
}
n = int(n64)
default:
return zeroValue, fmt.Errorf("Cannot convert %T to bool", i)
}
if pointer {
return reflect.ValueOf(&n), nil
}
return reflect.ValueOf(n), nil
}