func compile()

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))
		}
	}
}