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  }