Documentation
¶
Index ¶
- Variables
- func NewConflictingTagsError(fieldName string, tags []string, message string) error
- func NewDuplicateFlagError(flagName, newFieldPath, existingFieldPath string) error
- func NewInputError(inputType, message string) error
- func NewInvalidBooleanTagError(fieldName, tagName, tagValue string) error
- func NewInvalidFlagEnvTagError(fieldName, tagValue string) error
- func NewInvalidFlagNameError(fieldName, flagName string) error
- func NewInvalidShorthandError(fieldName, shorthand string) error
- func NewInvalidTagUsageError(fieldName, tagName, message string) error
- func NewMissingRequiredEnvError(fieldName string, envVars []string) error
- func NewUnsupportedTypeError(fieldName, fieldType, message string) error
- type ConflictingTagsError
- type DefinitionError
- type DuplicateFlagError
- type EnvOnlyCLIUsageError
- type FlagError
- type FlagErrorKind
- type InputError
- type InvalidBooleanTagError
- type InvalidFlagEnvTagError
- type InvalidFlagNameError
- type InvalidShorthandError
- type InvalidTagUsageError
- type MissingRequiredEnvError
- type UnsupportedTypeError
- type ValidationDetail
- type ValidationError
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidBooleanTag = errors.New("invalid boolean tag value") ErrInvalidFlagEnvTag = errors.New("invalid flagenv tag value") ErrInvalidShorthand = errors.New("invalid shorthand flag") ErrInvalidTagUsage = errors.New("invalid tag usage") ErrConflictingTags = errors.New("conflicting struct tags") ErrUnsupportedType = errors.New("unsupported field type") ErrDuplicateFlag = errors.New("duplicate flag name") ErrInvalidFlagName = errors.New("invalid flag name") )
These are all DefinitionError
var ErrEnvOnlyCLIUsage = errors.New("env-only flag set via CLI")
var ErrInputValue = errors.New("invalid input value")
var ErrMissingRequiredEnv = errors.New("missing required environment variable")
Functions ¶
func NewConflictingTagsError ¶
func NewDuplicateFlagError ¶
func NewInputError ¶
NewInputError creates an InputError.
func NewInvalidFlagEnvTagError ¶ added in v0.16.0
func NewInvalidFlagNameError ¶
func NewInvalidTagUsageError ¶
func NewMissingRequiredEnvError ¶ added in v0.16.0
func NewUnsupportedTypeError ¶
Types ¶
type ConflictingTagsError ¶
ConflictingTagsError represents conflicting struct tag values
func (*ConflictingTagsError) Error ¶
func (e *ConflictingTagsError) Error() string
func (*ConflictingTagsError) Field ¶
func (e *ConflictingTagsError) Field() string
func (*ConflictingTagsError) Unwrap ¶
func (e *ConflictingTagsError) Unwrap() error
type DefinitionError ¶
DefinitionError represents an error that occurred while processing a struct field's tags at definition time.
type DuplicateFlagError ¶
DuplicateFlagError represents a flag name that is already in use.
func (*DuplicateFlagError) Error ¶
func (e *DuplicateFlagError) Error() string
func (*DuplicateFlagError) Field ¶
func (e *DuplicateFlagError) Field() string
func (*DuplicateFlagError) Unwrap ¶
func (e *DuplicateFlagError) Unwrap() error
type EnvOnlyCLIUsageError ¶ added in v0.16.0
type EnvOnlyCLIUsageError struct {
FlagNames []string
}
EnvOnlyCLIUsageError represents an attempt to set an env-only flag via the CLI.
func (*EnvOnlyCLIUsageError) Error ¶ added in v0.16.0
func (e *EnvOnlyCLIUsageError) Error() string
func (*EnvOnlyCLIUsageError) Unwrap ¶ added in v0.16.0
func (e *EnvOnlyCLIUsageError) Unwrap() error
type FlagError ¶ added in v0.13.0
type FlagError struct {
FlagName string // the flag name (eg. "port", "level")
Value string // the value that was provided (may be empty for unknown flags)
Kind FlagErrorKind // what kind of flag error
Cause error // the original pflag error
}
FlagError represents a flag parsing error intercepted by [SetupFlagErrors].
It carries only what's needed to identify the error: flag name, bad value, and error kind. Metadata enrichment (expected type, enum values, env vars) happens at classification time in [HandleError], which receives the correct subcommand from [ExecuteC].
func NewFlagError ¶ added in v0.13.0
func NewFlagError(kind FlagErrorKind, flagName, value string, cause error) *FlagError
NewFlagError creates a FlagError.
type FlagErrorKind ¶ added in v0.13.0
type FlagErrorKind int
FlagErrorKind distinguishes between flag error types.
const ( // FlagErrorInvalidValue indicates a flag received a value of the wrong type/format. FlagErrorInvalidValue FlagErrorKind = iota // FlagErrorUnknown indicates the flag does not exist on the command. FlagErrorUnknown )
type InputError ¶
InputError represents an invalid input value for flag definition
func (*InputError) Error ¶
func (e *InputError) Error() string
func (*InputError) Unwrap ¶
func (e *InputError) Unwrap() error
type InvalidBooleanTagError ¶
InvalidBooleanTagError represents an invalid boolean value in struct tags
func (*InvalidBooleanTagError) Error ¶
func (e *InvalidBooleanTagError) Error() string
func (*InvalidBooleanTagError) Field ¶
func (e *InvalidBooleanTagError) Field() string
func (*InvalidBooleanTagError) Unwrap ¶
func (e *InvalidBooleanTagError) Unwrap() error
type InvalidFlagEnvTagError ¶ added in v0.16.0
InvalidFlagEnvTagError represents an invalid value for the flagenv tag.
func (*InvalidFlagEnvTagError) Error ¶ added in v0.16.0
func (e *InvalidFlagEnvTagError) Error() string
func (*InvalidFlagEnvTagError) Field ¶ added in v0.16.0
func (e *InvalidFlagEnvTagError) Field() string
func (*InvalidFlagEnvTagError) Unwrap ¶ added in v0.16.0
func (e *InvalidFlagEnvTagError) Unwrap() error
type InvalidFlagNameError ¶
InvalidFlagNameError represents an invalid flag name
func (*InvalidFlagNameError) Error ¶
func (e *InvalidFlagNameError) Error() string
func (*InvalidFlagNameError) Field ¶
func (e *InvalidFlagNameError) Field() string
func (*InvalidFlagNameError) Unwrap ¶
func (e *InvalidFlagNameError) Unwrap() error
type InvalidShorthandError ¶
InvalidShorthandError represents an invalid shorthand flag specification
func (*InvalidShorthandError) Error ¶
func (e *InvalidShorthandError) Error() string
func (*InvalidShorthandError) Field ¶
func (e *InvalidShorthandError) Field() string
func (*InvalidShorthandError) Unwrap ¶
func (e *InvalidShorthandError) Unwrap() error
type InvalidTagUsageError ¶
InvalidTagUsageError represents invalid tag usages
func (*InvalidTagUsageError) Error ¶
func (e *InvalidTagUsageError) Error() string
func (*InvalidTagUsageError) Field ¶
func (e *InvalidTagUsageError) Field() string
func (*InvalidTagUsageError) Unwrap ¶
func (e *InvalidTagUsageError) Unwrap() error
type MissingRequiredEnvError ¶ added in v0.16.0
MissingRequiredEnvError represents an env-only field that was not set.
func (*MissingRequiredEnvError) Error ¶ added in v0.16.0
func (e *MissingRequiredEnvError) Error() string
func (*MissingRequiredEnvError) Field ¶ added in v0.16.0
func (e *MissingRequiredEnvError) Field() string
func (*MissingRequiredEnvError) Unwrap ¶ added in v0.16.0
func (e *MissingRequiredEnvError) Unwrap() error
type UnsupportedTypeError ¶
UnsupportedTypeError represents an unsupported field type
func (*UnsupportedTypeError) Error ¶
func (e *UnsupportedTypeError) Error() string
func (*UnsupportedTypeError) Field ¶
func (e *UnsupportedTypeError) Field() string
func (*UnsupportedTypeError) Unwrap ¶
func (e *UnsupportedTypeError) Unwrap() error
type ValidationDetail ¶ added in v0.13.0
type ValidationDetail struct {
Field string `json:"field,omitempty"`
StructField string `json:"structField,omitempty"`
Rule string `json:"rule,omitempty"`
Param string `json:"param,omitempty"`
Value any `json:"value,omitempty"`
Message string `json:"message"`
}
ValidationDetail holds structured information extracted from a single validation error.
type ValidationError ¶
ValidationError wraps multiple validation errors that occurred during ValidatableOptions unmarshalling.
func (*ValidationError) Details ¶ added in v0.13.0
func (e *ValidationError) Details() []ValidationDetail
Details extracts structured information from each inner error. For errors implementing fieldErrorInfo (e.g., validator.FieldError), it extracts Field, Rule (tag), Param, and Value. For all other errors, it falls back to populating only the Message field. Returns nil when Errors is nil or empty.
func (*ValidationError) Error ¶
func (e *ValidationError) Error() string
func (*ValidationError) UnderlyingErrors ¶
func (e *ValidationError) UnderlyingErrors() []error
UnderlyingErrors returns a defensive copy of the individual validation errors.
func (*ValidationError) Unwrap ¶ added in v0.16.0
func (e *ValidationError) Unwrap() []error
Unwrap returns the inner errors so that errors.Is and errors.As traverse into individual validation failures.
The returned slice is the live internal slice. Callers that need mutation-safe access should use ValidationError.UnderlyingErrors instead.