github.com/profzone/eden-framework@v1.0.10/pkg/validate/validatetpl/int8.go (about) 1 package validatetpl 2 3 import ( 4 "fmt" 5 "reflect" 6 ) 7 8 func NewRangeValidateUint8(min uint8, max uint8, exc_min, exc_max bool) func(v interface{}) (bool, string) { 9 return func(v interface{}) (bool, string) { 10 if reflect.TypeOf(v).Kind() == reflect.Uint8 { 11 value := uint8(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_UINT8 19 } 20 } 21 func NewEnumValidateUint8(enum_values ...uint8) func(v interface{}) (bool, string) { 22 return func(v interface{}) (bool, string) { 23 if reflect.TypeOf(v).Kind() == reflect.Uint8 { 24 value := uint8(reflect.ValueOf(v).Uint()) 25 for _, enum_value := range enum_values { 26 if value == uint8(enum_value) { 27 return true, "" 28 } 29 } 30 return false, fmt.Sprintf(INT_VALUE_NOT_IN_ENUM, enum_values, value) 31 32 } 33 return false, TYPE_NOT_UINT8 34 } 35 } 36 func NewRangeValidateInt8(min int8, max int8, exc_min, exc_max bool) func(v interface{}) (bool, string) { 37 return func(v interface{}) (bool, string) { 38 if reflect.TypeOf(v).Kind() == reflect.Int8 { 39 value := int8(reflect.ValueOf(v).Int()) 40 if value < min || value > max || (value == min && exc_min) || (value == max && exc_max) { 41 lb, rb := getBrackets(exc_min, exc_max) 42 return false, fmt.Sprintf(INT_VALUE_NOT_IN_RANGE, lb, min, max, rb, value) 43 } 44 return true, "" 45 } 46 return false, TYPE_NOT_INT8 47 } 48 } 49 func NewEnumValidateInt8(enum_values ...int8) func(v interface{}) (bool, string) { 50 return func(v interface{}) (bool, string) { 51 if reflect.TypeOf(v).Kind() == reflect.Int8 { 52 value := int8(reflect.ValueOf(v).Int()) 53 for _, enum_value := range enum_values { 54 if value == int8(enum_value) { 55 return true, "" 56 } 57 } 58 return false, fmt.Sprintf(INT_VALUE_NOT_IN_ENUM, enum_values, value) 59 } 60 return false, TYPE_NOT_INT8 61 } 62 }