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  }