core

package
v0.0.49 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2025 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AllOrNoneGroup added in v0.0.36

type AllOrNoneGroup struct {
	Name  string      // Identifier for this group.
	Flags []*BaseFlag // Member flags.
	// contains filtered or unexported fields
}

AllOrNoneGroup enforces that all member flags must be set if any is set.

func (*AllOrNoneGroup) Hidden added in v0.0.36

func (g *AllOrNoneGroup) Hidden() *AllOrNoneGroup

Hidden marks the group as omitted from help.

func (*AllOrNoneGroup) IsHidden added in v0.0.36

func (g *AllOrNoneGroup) IsHidden() bool

IsHidden reports whether the group is hidden.

func (*AllOrNoneGroup) IsRequired added in v0.0.36

func (g *AllOrNoneGroup) IsRequired() bool

IsRequired reports whether the group is required.

func (*AllOrNoneGroup) Required added in v0.0.36

func (g *AllOrNoneGroup) Required() *AllOrNoneGroup

Required enforces that at least one of the group flags must be set.

func (*AllOrNoneGroup) Title added in v0.0.36

func (g *AllOrNoneGroup) Title(t string) *AllOrNoneGroup

Title sets a custom help heading.

func (*AllOrNoneGroup) TitleText added in v0.0.36

func (g *AllOrNoneGroup) TitleText() string

TitleText returns the custom heading, if any.

type BaseFlag

type BaseFlag struct {
	Name         string           // Long name (e.g. "verbose").
	Short        string           // Short alias (single letter, e.g. "v").
	Usage        string           // Brief description shown in help.
	Value        Value            // Underlying value handler (scalar, slice, or dynamic).
	Hidden       bool             // If true, omit from help.
	DisableEnv   bool             // If true, disallow ENV lookup.
	EnvKey       string           // Custom environment variable (overrides derived key).
	HideEnv      bool             // If true, hide ENV key from help.
	Deprecated   string           // If non‐empty, show deprecation notice.
	Required     bool             // Mark flag as required.
	HideRequired bool             // Hide “(Required)” in help.
	Placeholder  string           // Placeholder for the value (e.g. "FILE").
	Allowed      []string         // Allowed string values (help only).
	HideAllowed  bool             // Hide allowed values from help.
	OneOfGroup   *OneOfGroupGroup // OneOfGroup group membership.
	AllOrNone    *AllOrNoneGroup  // AllOrNone group membership.
	Requires     []string         // Names of flags this flag requires
	HideRequires bool             // Hide “(Requires)” in help.
}

BaseFlag holds metadata for a single flag.

type DuplicatePerIDError added in v0.0.49

type DuplicatePerIDError struct {
	Field string // dynamic field name, e.g. "timeout"
	ID    string // instance id, e.g. "alpha"
}

Typed error so the parser can pretty-print a friendly message.

func (*DuplicatePerIDError) Error added in v0.0.49

func (e *DuplicatePerIDError) Error() string

type DynamicItemValues

type DynamicItemValues interface {
	ValuesAny() map[string]any
}

DynamicItemValues exposes all parsed dynamic entries.

type DynamicValue

type DynamicValue interface {
	Set(id, val string) error
	FieldName() string
	GetAny(id string) (any, bool)
}

DynamicValue accepts keyed values (e.g. --http.alpha.port).

type GroupItem added in v0.0.19

type GroupItem struct {
	Value DynamicValue
	Flag  *BaseFlag
}

GroupItem holds a single flag and its value for a dynamic group.

type Incrementable

type Incrementable interface {
	Value
	Increment() error
}

Incrementable allows repeated use to increment a counter flag.

type OncePerIDToggler added in v0.0.49

type OncePerIDToggler interface {
	EnableOncePerID()
}

Optional knob: value types that can enforce once-per-id expose this.

type OneOfGroupGroup added in v0.0.36

type OneOfGroupGroup struct {
	Name           string            // Identifier for this group.
	Flags          []*BaseFlag       // Member flags.
	RequiredGroups []*AllOrNoneGroup // Optional grouped sets
	// contains filtered or unexported fields
}

OneOfGroupGroup enforces exclusivity among a set of flags. Only one flag in the group may be set.

func (*OneOfGroupGroup) AddGroup added in v0.0.36

func (g *OneOfGroupGroup) AddGroup(grp *AllOrNoneGroup) *OneOfGroupGroup

AddGroup includes a OneOfGroup group as one exclusive member.

func (*OneOfGroupGroup) Hidden added in v0.0.36

func (g *OneOfGroupGroup) Hidden() *OneOfGroupGroup

Hidden marks the group as omitted from help.

func (*OneOfGroupGroup) IsHidden added in v0.0.36

func (g *OneOfGroupGroup) IsHidden() bool

IsHidden reports whether the group is hidden.

func (*OneOfGroupGroup) IsRequired added in v0.0.36

func (g *OneOfGroupGroup) IsRequired() bool

IsRequired reports whether the group is required.

func (*OneOfGroupGroup) Required added in v0.0.36

func (g *OneOfGroupGroup) Required() *OneOfGroupGroup

Required enforces that one member must be set.

func (*OneOfGroupGroup) Title added in v0.0.36

func (g *OneOfGroupGroup) Title(t string) *OneOfGroupGroup

Title sets a custom help heading.

func (*OneOfGroupGroup) TitleText added in v0.0.36

func (g *OneOfGroupGroup) TitleText() string

TitleText returns the custom heading, if any.

type Registry

type Registry interface {
	RegisterFlag(name string, bf *BaseFlag)
	GetOneOfGroup(name string) *OneOfGroupGroup
	OneOfGroups() []*OneOfGroupGroup
	DefaultDelimiter() string
	GetAllOrNoneGroup(name string) *AllOrNoneGroup
}

Registry manages static flags, dynamic groups, and defaults.

type SliceMarker

type SliceMarker interface {
	IsSlice()
}

SliceMarker tags slice-type flags (no methods).

type StrictBool

type StrictBool interface {
	IsStrictBool() bool
}

StrictBool supports --flag / --no-flag syntax.

type Value

type Value interface {
	Set(string) error // parse from string
	Get() any         // retrieve stored value
	Changed() bool    // was flag explicitly set?
	Default() string  // default value as string
}

Value parses and holds a single CLI value.

Jump to

Keyboard shortcuts

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