github.com/profzone/eden-framework@v1.0.10/pkg/validate/validatetpl/int64.go (about) 1 package validatetpl 2 3 import ( 4 "fmt" 5 "reflect" 6 ) 7 8 func NewRangeValidateUint64(min uint64, max uint64, exc_min, exc_max bool) func(v interface{}) (bool, string) { 9 return func(v interface{}) (bool, string) { 10 if reflect.TypeOf(v).Kind() == reflect.Uint64 { 11 value := uint64(reflect.ValueOf(v).Uint()) 12 if value < min || value > max || (value == min && exc_min) || (value == max && exc_max) { 13 lb, rb := getBrackets(exc_min, exc_max) 14 return false, fmt.Sprintf(INT_VALUE_NOT_IN_RANGE, lb, min, max, rb, value) 15 } 16 return true, "" 17 } 18 return false, TYPE_NOT_UINT64 19 } 20 } 21 func NewRangeValidateInt64(min int64, max int64, exc_min, exc_max bool) func(v interface{}) (bool, string) { 22 return func(v interface{}) (bool, string) { 23 if reflect.TypeOf(v).Kind() == reflect.Int64 { 24 value := int64(reflect.ValueOf(v).Int()) 25 if value < min || value > max || (value == min && exc_min) || (value == max && exc_max) { 26 lb, rb := getBrackets(exc_min, exc_max) 27 return false, fmt.Sprintf(INT_VALUE_NOT_IN_RANGE, lb, min, max, rb, value) 28 } 29 return true, "" 30 } 31 return false, TYPE_NOT_INT64 32 } 33 } 34 func NewEnumValidateUint64(enum_values ...uint64) func(v interface{}) (bool, string) { 35 return func(v interface{}) (bool, string) { 36 if reflect.TypeOf(v).Kind() == reflect.Uint64 { 37 value := uint64(reflect.ValueOf(v).Uint()) 38 for _, enum_value := range enum_values { 39 if value == uint64(enum_value) { 40 return true, "" 41 } 42 } 43 return false, fmt.Sprintf(INT_VALUE_NOT_IN_ENUM, enum_values, value) 44 } 45 return false, TYPE_NOT_UINT64 46 } 47 } 48 func NewEnumValidateInt64(enum_values ...int64) func(v interface{}) (bool, string) { 49 return func(v interface{}) (bool, string) { 50 if reflect.TypeOf(v).Kind() == reflect.Int64 { 51 value := int64(reflect.ValueOf(v).Int()) 52 for _, enum_value := range enum_values { 53 if value == int64(enum_value) { 54 return true, "" 55 } 56 } 57 return false, fmt.Sprintf(INT_VALUE_NOT_IN_ENUM, enum_values, value) 58 } 59 return false, TYPE_NOT_INT64 60 } 61 }