github.com/profzone/eden-framework@v1.0.10/pkg/validate/validatetpl/int32.go (about) 1 package validatetpl 2 3 import ( 4 "fmt" 5 "reflect" 6 ) 7 8 func NewRangeValidateUint32(min uint32, max uint32, exc_min, exc_max bool) func(v interface{}) (bool, string) { 9 return func(v interface{}) (bool, string) { 10 if reflect.TypeOf(v).Kind() == reflect.Uint32 { 11 value := uint32(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_UINT32 19 } 20 } 21 func NewRangeValidateInt32(min int32, max int32, exc_min, exc_max bool) func(v interface{}) (bool, string) { 22 return func(v interface{}) (bool, string) { 23 if reflect.TypeOf(v).Kind() == reflect.Int32 { 24 value := int32(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_INT32 32 } 33 } 34 func NewEnumValidateUint32(enum_values ...uint32) func(v interface{}) (bool, string) { 35 return func(v interface{}) (bool, string) { 36 if reflect.TypeOf(v).Kind() == reflect.Uint32 { 37 value := uint32(reflect.ValueOf(v).Uint()) 38 for _, enum_value := range enum_values { 39 if value == uint32(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_UINT32 46 } 47 } 48 func NewEnumValidateInt32(enum_values ...int32) func(v interface{}) (bool, string) { 49 return func(v interface{}) (bool, string) { 50 if reflect.TypeOf(v).Kind() == reflect.Int32 { 51 value := int32(reflect.ValueOf(v).Int()) 52 for _, enum_value := range enum_values { 53 if value == int32(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_INT32 60 } 61 }