errors

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidResourceName = stderrors.New("invalid resource name")
	ErrUnsafePath          = stderrors.New("unsafe path detected")
)

Functions

func ExitCode

func ExitCode(err error) int

ExitCode maps any error to a stable exit code.

func NewAPI

func NewAPI(message string, opts ...Option) error

NewAPI returns an API-category error.

func NewAuth

func NewAuth(message string, opts ...Option) error

NewAuth returns an auth-category error.

func NewDiscovery

func NewDiscovery(message string, opts ...Option) error

NewDiscovery returns a discovery-category error.

func NewInternal

func NewInternal(message string, opts ...Option) error

NewInternal returns an internal-category error.

func NewValidation

func NewValidation(message string, opts ...Option) error

NewValidation returns a validation-category error.

func PrintHuman

func PrintHuman(w io.Writer, err error) error

PrintHuman writes a concise human-readable error rendering.

func PrintJSON

func PrintJSON(w io.Writer, err error) error

PrintJSON writes a machine-readable JSON error object.

func ResourceName

func ResourceName(name string) error

func SafePath

func SafePath(path string) error

Types

type Category

type Category string

Category represents a stable error class with a documented exit code.

const (
	CategoryAPI        Category = "api"
	CategoryAuth       Category = "auth"
	CategoryValidation Category = "validation"
	CategoryDiscovery  Category = "discovery"
	CategoryInternal   Category = "internal"
)

type Error

type Error struct {
	Category  Category
	Message   string
	Operation string
	ServerKey string
	Retryable bool
	Reason    string
	Hint      string
	Actions   []string
	Snapshot  string
	RPCCode   int             `json:"rpc_code,omitempty"`
	RPCData   json.RawMessage `json:"rpc_data,omitempty"`
	Cause     error           `json:"-"`
}

Error is the structured repository-local error model for the Go rewrite.

func (*Error) Error

func (e *Error) Error() string

func (*Error) ExitCode

func (e *Error) ExitCode() int

ExitCode returns the documented process exit code for the error category.

func (*Error) Unwrap

func (e *Error) Unwrap() error

Unwrap returns the underlying cause, enabling errors.Is and errors.As chains.

type Option

type Option func(*Error)

Option mutates a structured error before it is returned.

func WithActions

func WithActions(actions ...string) Option

WithActions records suggested next actions for recovery.

func WithCause

func WithCause(err error) Option

WithCause wraps the original error so it can be retrieved via errors.Unwrap.

func WithHint

func WithHint(hint string) Option

WithHint records a short recovery hint for humans and agents.

func WithOperation

func WithOperation(operation string) Option

WithOperation records the operation that failed.

func WithRPCCode

func WithRPCCode(code int) Option

WithRPCCode records the original JSON-RPC error code.

func WithRPCData

func WithRPCData(data json.RawMessage) Option

WithRPCData records the original JSON-RPC error data payload.

func WithReason

func WithReason(reason string) Option

WithReason records a stable machine-readable failure reason.

func WithRetryable

func WithRetryable(retryable bool) Option

WithRetryable marks whether the error can be retried safely.

func WithServerKey

func WithServerKey(serverKey string) Option

WithServerKey records the server identifier associated with the failure.

func WithSnapshot

func WithSnapshot(path string) Option

WithSnapshot records the recovery snapshot path associated with the failure.

Jump to

Keyboard shortcuts

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