Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ValidationRule ¶
type ValidationRule struct {
// Numeric constraints
Min *float64 `json:"min,omitempty"`
Max *float64 `json:"max,omitempty"`
GreaterThan *float64 `json:"greater_than,omitempty"`
LessThan *float64 `json:"less_than,omitempty"`
// String/Array/Map length constraints
Length *int `json:"length,omitempty"`
MinLength *int `json:"min_length,omitempty"`
MaxLength *int `json:"max_length,omitempty"`
// String pattern validation
Pattern *string `json:"pattern,omitempty"`
Email *bool `json:"email,omitempty"`
URL *bool `json:"url,omitempty"`
UUID *bool `json:"uuid,omitempty"`
ISBN *bool `json:"isbn,omitempty"`
Numeric *bool `json:"numeric,omitempty"`
Alpha *bool `json:"alpha,omitempty"`
Alphanumeric *bool `json:"alphanumeric,omitempty"`
// Special validations
Required *bool `json:"required,omitempty"`
NotNull *bool `json:"not_null,omitempty"`
OmitEmpty *bool `json:"omit_empty,omitempty"`
Unique *bool `json:"unique,omitempty"`
Enum []string `json:"enum,omitempty"`
// Field relationships
EqualsField *string `json:"equals_field,omitempty"`
NotEqualsField *string `json:"not_equals_field,omitempty"`
FieldGt *string `json:"field_gt,omitempty"`
FieldGte *string `json:"field_gte,omitempty"`
FieldLt *string `json:"field_lt,omitempty"`
FieldLte *string `json:"field_lte,omitempty"`
// Type specific
DateFormat *string `json:"date_format,omitempty"`
TimeFormat *string `json:"time_format,omitempty"`
// Custom field for unmapped rules
Custom map[string]any `json:"custom,omitempty"`
}
ValidationRule represents a parsed validation rule with nullable fields
func ParseValidationTag ¶
func ParseValidationTag(tag string) *ValidationRule
ParseValidationTag parses a validation tag string and returns a ValidationRule Example: "omitempty,gte=8,lte=20,required" -> ValidationRule{Min: 8, Max: 20, Required: true, OmitEmpty: true}
Click to show internal directories.
Click to hide internal directories.