errors

package
v0.17.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidBooleanTag            = errors.New("invalid boolean tag value")
	ErrInvalidFlagEnvTag            = errors.New("invalid flagenv tag value")
	ErrInvalidShorthand             = errors.New("invalid shorthand flag")
	ErrMissingDefineHook            = errors.New("missing custom flag definition hook")
	ErrMissingDecodeHook            = errors.New("missing custom flag decoding hook")
	ErrInvalidDefineHookSignature   = errors.New("invalid define hook signature")
	ErrInvalidDecodeHookSignature   = errors.New("invalid decode hook signature")
	ErrInvalidCompleteHookSignature = errors.New("invalid complete hook signature")
	ErrInvalidTagUsage              = errors.New("invalid tag usage")
	ErrConflictingTags              = errors.New("conflicting struct tags")
	ErrConflictingType              = errors.New("conflicting struct field types")
	ErrUnsupportedType              = errors.New("unsupported field type")
	ErrDuplicateFlag                = errors.New("duplicate flag name")
	ErrInvalidFlagName              = errors.New("invalid flag name")
)

These are all DefinitionError

View Source
var ErrEnvOnlyCLIUsage = errors.New("env-only flag set via CLI")
View Source
var ErrInputValue = errors.New("invalid input value")
View Source
var ErrMissingRequiredEnv = errors.New("missing required environment variable")

Functions

func NewConflictingTagsError

func NewConflictingTagsError(fieldName string, tags []string, message string) error

func NewConflictingTypeError

func NewConflictingTypeError(fieldType reflect.Type, fields []string, message string) error

func NewDuplicateFlagError

func NewDuplicateFlagError(flagName, newFieldPath, existingFieldPath string) error

func NewInputError

func NewInputError(inputType, message string) error

NewInputError creates an InputError.

func NewInvalidBooleanTagError

func NewInvalidBooleanTagError(fieldName, tagName, tagValue string) error

func NewInvalidCompleteHookSignatureError added in v0.11.0

func NewInvalidCompleteHookSignatureError(fieldName, hookName string, err error) error

func NewInvalidDecodeHookSignatureError

func NewInvalidDecodeHookSignatureError(fieldName, hookName string, err error) error

func NewInvalidDefineHookSignatureError

func NewInvalidDefineHookSignatureError(fieldName, hookName string, err error) error

func NewInvalidFlagEnvTagError added in v0.16.0

func NewInvalidFlagEnvTagError(fieldName, tagValue string) error

func NewInvalidFlagNameError

func NewInvalidFlagNameError(fieldName, flagName string) error

func NewInvalidShorthandError

func NewInvalidShorthandError(fieldName, shorthand string) error

func NewInvalidTagUsageError

func NewInvalidTagUsageError(fieldName, tagName, message string) error

func NewMissingDecodeHookError

func NewMissingDecodeHookError(fieldName, hookName string) error

func NewMissingDefineHookError

func NewMissingDefineHookError(fieldName, hookName string) error

func NewMissingRequiredEnvError added in v0.16.0

func NewMissingRequiredEnvError(fieldName string, envVars []string) error

func NewUnsupportedTypeError

func NewUnsupportedTypeError(fieldName, fieldType, message string) error

Types

type ConflictingTagsError

type ConflictingTagsError struct {
	FieldName       string
	Message         string
	ConflictingTags []string
}

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 ConflictingTypeError

type ConflictingTypeError struct {
	Type     reflect.Type
	TypeName string
	Fields   []string
	Message  string
}

ConflictingTypeError represents conflicting struct fields having the same custom type

func (*ConflictingTypeError) Error

func (e *ConflictingTypeError) Error() string

func (*ConflictingTypeError) Field

func (e *ConflictingTypeError) Field() string

func (*ConflictingTypeError) Unwrap

func (e *ConflictingTypeError) Unwrap() error

type DefinitionError

type DefinitionError interface {
	error
	Field() string
}

DefinitionError represents an error that occurred while processing a struct field's tags at definition time.

type DuplicateFlagError

type DuplicateFlagError struct {
	FlagName          string
	NewFieldPath      string
	ExistingFieldPath string
}

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.

func (*FlagError) Error added in v0.13.0

func (e *FlagError) Error() string

func (*FlagError) Unwrap added in v0.13.0

func (e *FlagError) Unwrap() error

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

type InputError struct {
	InputType string
	Message   string
}

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

type InvalidBooleanTagError struct {
	FieldName string
	TagName   string
	TagValue  string
}

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 InvalidCompleteHookSignatureError added in v0.11.0

type InvalidCompleteHookSignatureError struct {
	FieldName string
	HookName  string
	Message   string
}

InvalidCompleteHookSignatureError represents an invalid completion hook.

func (*InvalidCompleteHookSignatureError) Error added in v0.11.0

func (*InvalidCompleteHookSignatureError) Field added in v0.11.0

func (*InvalidCompleteHookSignatureError) Unwrap added in v0.11.0

type InvalidDecodeHookSignatureError

type InvalidDecodeHookSignatureError struct {
	FieldName string
	HookName  string
	Message   string
}

InvalidDecodeHookSignatureError represents an invalid custom flag definition hook

func (*InvalidDecodeHookSignatureError) Error

func (*InvalidDecodeHookSignatureError) Field

func (*InvalidDecodeHookSignatureError) Unwrap

type InvalidDefineHookSignatureError

type InvalidDefineHookSignatureError struct {
	FieldName string
	HookName  string
	Message   string
}

InvalidDefineHookSignatureError represents an invalid custom flag definition hook

func (*InvalidDefineHookSignatureError) Error

func (*InvalidDefineHookSignatureError) Field

func (*InvalidDefineHookSignatureError) Unwrap

type InvalidFlagEnvTagError added in v0.16.0

type InvalidFlagEnvTagError struct {
	FieldName string
	TagValue  string
}

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

type InvalidFlagNameError struct {
	FieldName string
	FlagName  string
}

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

type InvalidShorthandError struct {
	FieldName string
	Shorthand string
}

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

type InvalidTagUsageError struct {
	FieldName string
	TagName   string
	Message   string
}

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 MissingDecodeHookError

type MissingDecodeHookError struct {
	FieldName    string
	ExpectedHook string
}

MissingDecodeHookError represents a missing custom flag decoding hook

func (*MissingDecodeHookError) Error

func (e *MissingDecodeHookError) Error() string

func (*MissingDecodeHookError) Field

func (e *MissingDecodeHookError) Field() string

func (*MissingDecodeHookError) Unwrap

func (e *MissingDecodeHookError) Unwrap() error

type MissingDefineHookError

type MissingDefineHookError struct {
	FieldName    string
	ExpectedHook string
}

MissingDefineHookError represents a missing custom flag definition hook

func (*MissingDefineHookError) Error

func (e *MissingDefineHookError) Error() string

func (*MissingDefineHookError) Field

func (e *MissingDefineHookError) Field() string

func (*MissingDefineHookError) Unwrap

func (e *MissingDefineHookError) Unwrap() error

type MissingRequiredEnvError added in v0.16.0

type MissingRequiredEnvError struct {
	FieldName string
	EnvVars   []string
}

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

type UnsupportedTypeError struct {
	FieldName string
	FieldType string
	Message   string
}

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

type ValidationError struct {
	ContextName string
	Errors      []error
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL