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  }