package router import ( "strings" "github.com/go-playground/validator/v10" ) var notBlankStringValidator validator.Func = func(fl validator.FieldLevel) bool { s, ok := fl.Field().Interface().(string) if ok { if len(strings.TrimSpace(s)) == 0 { return false } } return true } var armamentWithWeaponsValidator validator.Func = func(fl validator.FieldLevel) bool { var v, compareTo float64 f := fl.Parent().FieldByName(fl.Param()) if f.CanFloat() { compareTo = f.Float() } else if f.CanInt() { compareTo = float64(f.Int()) } else { return false } if fl.Field().CanFloat() { v = fl.Field().Float() } else if fl.Field().CanInt() { v = float64(fl.Field().Int()) } else { return false } return (v == 0 && compareTo == 0) || (v >= 1 && compareTo >= 1) }