Documentation
¶
Index ¶
- func Get[T any](g *Group, field, id string) (T, error)
- func MustGet[T any](g *Group, field, id string) T
- type BoolFlag
- type BoolValue
- type DynamicScalarValue
- type DynamicSliceValue
- type FlagSetRef
- type Group
- func (g *Group) Bool(field string, def bool, usage string) *BoolFlag
- func (g *Group) Bytes(field string, def uint64, usage string) *ScalarFlag[uint64]
- func (g *Group) BytesSlice(field string, def []uint64, usage string) *SliceFlag[uint64]
- func (g *Group) Duration(field string, def time.Duration, usage string) *ScalarFlag[time.Duration]
- func (g *Group) DurationSlice(field string, def []time.Duration, usage string) *SliceFlag[time.Duration]
- func (g *Group) File(field string, def *os.File, usage string) *ScalarFlag[*os.File]
- func (g *Group) FileSlice(field string, def []*os.File, usage string) *SliceFlag[*os.File]
- func (g *Group) Float32(field string, def float32, usage string) *ScalarFlag[float32]
- func (g *Group) Float32Slice(field string, def []float32, usage string) *SliceFlag[float32]
- func (g *Group) Float64(field string, def float64, usage string) *ScalarFlag[float64]
- func (g *Group) Float64Slice(field string, def []float64, usage string) *SliceFlag[float64]
- func (g *Group) Instances() []string
- func (g *Group) Int(field string, def int, usage string) *ScalarFlag[int]
- func (g *Group) IntSlice(field string, def []int, usage string) *SliceFlag[int]
- func (g *Group) Items() map[string]core.DynamicValue
- func (g *Group) Name() string
- func (g *Group) String(field string, def string, usage string) *ScalarFlag[string]
- func (g *Group) StringSlice(field string, def []string, usage string) *SliceFlag[string]
- func (g *Group) TCPAddr(field string, def *net.TCPAddr, usage string) *ScalarFlag[*net.TCPAddr]
- func (g *Group) TCPAddrSlice(field string, def []*net.TCPAddr, usage string) *SliceFlag[*net.TCPAddr]
- func (g *Group) Time(field string, def time.Time, usage string) *ScalarFlag[time.Time]
- func (g *Group) TimeSlice(field string, def []time.Time, usage string) *SliceFlag[time.Time]
- func (g *Group) URL(field string, def *url.URL, usage string) *ScalarFlag[*url.URL]
- func (g *Group) URLSlice(field string, def []*url.URL, usage string) *SliceFlag[*url.URL]
- type ScalarFlag
- func (f *ScalarFlag[T]) Choices(allowed ...T) *ScalarFlag[T]
- func (f *ScalarFlag[T]) Get(id string) (T, bool)
- func (f *ScalarFlag[T]) Has(id string) bool
- func (f *ScalarFlag[T]) MustGet(id string) T
- func (f *ScalarFlag[T]) Validate(fn func(T) error) *ScalarFlag[T]
- func (f *ScalarFlag[T]) Values() map[string]T
- func (f *ScalarFlag[T]) ValuesAny() map[string]any
- type SliceFlag
- func (f *SliceFlag[T]) Choices(allowed ...T) *SliceFlag[T]
- func (f *SliceFlag[T]) Delimiter(sep string) *SliceFlag[T]
- func (f *SliceFlag[T]) Get(id string) ([]T, bool)
- func (f *SliceFlag[T]) Has(id string) bool
- func (f *SliceFlag[T]) MustGet(id string) []T
- func (f *SliceFlag[T]) Validate(fn func(T) error) *SliceFlag[T]
- func (f *SliceFlag[T]) Values() map[string][]T
- func (f *SliceFlag[T]) ValuesAny() map[string]any
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BoolFlag ¶
type BoolFlag struct { *builder.DynamicFlag[bool] // contains filtered or unexported fields }
BoolFlag is the builder for per-ID boolean flags.
type BoolValue ¶
type BoolValue struct {
// contains filtered or unexported fields
}
BoolValue wraps a DynamicScalarValue[bool] and lets the FSM see IsStrictBool.
func (*BoolValue) IsStrictBool ¶
IsStrictBool reports whether the flag requires an explicit value (--flag=true/false).
type DynamicScalarValue ¶
type DynamicScalarValue[T any] struct { // contains filtered or unexported fields }
DynamicScalarValue parses and stores one value per ID.
func NewDynamicScalarValue ¶
func NewDynamicScalarValue[T any]( field string, def T, parse func(string) (T, error), format func(T) string, ) *DynamicScalarValue[T]
NewDynamicScalarValue creates a per-ID scalar parser.
func (*DynamicScalarValue[T]) Set ¶
func (d *DynamicScalarValue[T]) Set(id, raw string) error
Set parses and stores one entry.
func (*DynamicScalarValue[T]) ValuesAny ¶ added in v0.0.9
func (d *DynamicScalarValue[T]) ValuesAny() map[string]any
type DynamicSliceValue ¶
type DynamicSliceValue[T any] struct { // contains filtered or unexported fields }
DynamicSliceValue parses comma (or custom-sep) lists per ID. For example: --http.alpha.tags=a,b
func NewDynamicSliceValue ¶
func NewDynamicSliceValue[T any]( field string, def []T, parse func(string) (T, error), format func(T) string, delimiter string, ) *DynamicSliceValue[T]
NewDynamicSliceValue builds a per-ID slice parser.
func (*DynamicSliceValue[T]) Set ¶
func (d *DynamicSliceValue[T]) Set(id, input string) error
Set parses and stores the slice from a delimited string for a given ID.
func (*DynamicSliceValue[T]) ValuesAny ¶ added in v0.0.9
func (d *DynamicSliceValue[T]) ValuesAny() map[string]any
type FlagSetRef ¶
type FlagSetRef interface { RegisterFlag(name string, bf *core.BaseFlag) AttachToGroup(*core.BaseFlag, string) GetGroup(name string) *core.MutualGroup Groups() []*core.MutualGroup DefaultDelimiter() string }
FlagSetRef is the subset of FlagSet needed by dynamic flags.
type Group ¶
type Group struct {
// contains filtered or unexported fields
}
Group manages a set of dynamic flags under one prefix.
func NewGroup ¶
func NewGroup(fs FlagSetRef, prefix string) *Group
NewGroup starts a new dynamic group.
func (*Group) BytesSlice ¶
BytesSlice
func (*Group) DurationSlice ¶
func (g *Group) DurationSlice(field string, def []time.Duration, usage string) *SliceFlag[time.Duration]
DurationSlice
func (*Group) Float32Slice ¶
Float32Slice
func (*Group) Float64Slice ¶
Float64Slice
func (*Group) StringSlice ¶
StringSlice
func (*Group) TCPAddrSlice ¶
func (g *Group) TCPAddrSlice(field string, def []*net.TCPAddr, usage string) *SliceFlag[*net.TCPAddr]
TCPAddrSlice
type ScalarFlag ¶
type ScalarFlag[T any] struct { *builder.DynamicFlag[T] // contains filtered or unexported fields }
ScalarFlag provides per-ID scalar flags. For example: --http.alpha.port=8080
func (*ScalarFlag[T]) Choices ¶
func (f *ScalarFlag[T]) Choices(allowed ...T) *ScalarFlag[T]
Choices restricts allowed scalar values.
func (*ScalarFlag[T]) Get ¶
func (f *ScalarFlag[T]) Get(id string) (T, bool)
Fallback to default only happens here
func (*ScalarFlag[T]) Has ¶ added in v0.0.9
func (f *ScalarFlag[T]) Has(id string) bool
Has returns true if the flag was set
func (*ScalarFlag[T]) MustGet ¶
func (f *ScalarFlag[T]) MustGet(id string) T
func (*ScalarFlag[T]) Validate ¶
func (f *ScalarFlag[T]) Validate(fn func(T) error) *ScalarFlag[T]
Validate lets you plug in arbitrary per‐element checks.
func (*ScalarFlag[T]) Values ¶
func (f *ScalarFlag[T]) Values() map[string]T
Values returns all stored values.
func (*ScalarFlag[T]) ValuesAny ¶
func (f *ScalarFlag[T]) ValuesAny() map[string]any
ValuesAny returns values as a generic map.
type SliceFlag ¶
type SliceFlag[T any] struct { *builder.DynamicFlag[T] // contains filtered or unexported fields }
SliceFlag provides per-ID slice flags. e.g., --http.alpha.tags=a,b or --node.node1.labels=env,prod.
func (*SliceFlag[T]) Get ¶
Get returns the parsed slice for the given ID. Fallback to default only happens here