spf13/cast

FeatureRequest: `ToBool` add `int*` support

hxzhao527 opened this issue · 1 comments

cast/caste.go

Lines 81 to 99 in 8807572

func ToBoolE(i interface{}) (bool, error) {
i = indirect(i)
switch b := i.(type) {
case bool:
return b, nil
case nil:
return false, nil
case int:
if i.(int) != 0 {
return true, nil
}
return false, nil
case string:
return strconv.ParseBool(i.(string))
default:
return false, fmt.Errorf("unable to cast %#v of type %T to bool", i, i)
}
}

there only assert type int, no int8, int16, int32, int64, uint ...

could we add these type case?

I got the same problem today as I used redismock which only return value in type int64, and couldn't convert to bool. So I have made a PR for that, I will link the PR to this issue for further discuss and review on this matter:
#135