in core.go [99:117]
func compile(in interface{}) (validator.Validator, error) {
switch in.(type) {
case isdef.IsDef:
return compileIsDef(in.(isdef.IsDef))
case nil:
// nil can't be handled by the default case of IsEqual
return compileIsDef(isdef.IsNil)
default:
inVal := reflect.ValueOf(in)
switch inVal.Kind() {
case reflect.Map:
return compileMap(inVal)
case reflect.Slice, reflect.Array:
return compileSlice(inVal)
default:
return compileIsDef(isdef.IsEqual(in))
}
}
}