Documentation
¶
Overview ¶
dynamic/scalar_value.go
Index ¶
- type BoolFlag
- type BoolValue
- type DynamicScalarValue
- type DynamicSliceValue
- type FlagSetRef
- type Group
- func (g *Group) Bool(field, usage string) *BoolFlag
- func (g *Group) Bytes(field, usage string) *ScalarFlag[uint64]
- func (g *Group) BytesSlice(field, usage string) *SliceFlag[uint64]
- func (g *Group) Duration(field, usage string) *ScalarFlag[time.Duration]
- func (g *Group) DurationSlice(field, usage string) *SliceFlag[time.Duration]
- func (g *Group) File(field, usage string) *ScalarFlag[*os.File]
- func (g *Group) FileSlice(field, usage string) *SliceFlag[*os.File]
- func (g *Group) Float32(field, usage string) *ScalarFlag[float32]
- func (g *Group) Float32Slice(field, usage string) *SliceFlag[float32]
- func (g *Group) Float64(field, usage string) *ScalarFlag[float64]
- func (g *Group) Float64Slice(field, usage string) *SliceFlag[float64]
- func (g *Group) Instances() []string
- func (g *Group) Int(field, usage string) *ScalarFlag[int]
- func (g *Group) IntSlice(field, usage string) *SliceFlag[int]
- func (g *Group) String(field, usage string) *ScalarFlag[string]
- func (g *Group) StringSlice(field, usage string) *SliceFlag[string]
- func (g *Group) TCPAddr(field, usage string) *ScalarFlag[*net.TCPAddr]
- func (g *Group) TCPAddrSlice(field, usage string) *SliceFlag[*net.TCPAddr]
- func (g *Group) Time(field, usage string) *ScalarFlag[time.Time]
- func (g *Group) TimeSlice(field, usage string) *SliceFlag[time.Time]
- func (g *Group) URL(field, usage string) *ScalarFlag[*url.URL]
- func (g *Group) URLSlice(field, 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]) 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]) 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 ¶
This section is empty.
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, 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.
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, 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.
type FlagSetRef ¶
type FlagSetRef interface {
RegisterDynamic(group, field string, v core.DynamicValue) error
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) Duration ¶
func (g *Group) Duration(field, usage string) *ScalarFlag[time.Duration]
Duration
func (*Group) DurationSlice ¶
DurationSlice
func (*Group) Float32Slice ¶
Float32Slice
func (*Group) Float64Slice ¶
Float64Slice
func (*Group) StringSlice ¶
StringSlice
func (*Group) TCPAddr ¶
func (g *Group) TCPAddr(field, usage string) *ScalarFlag[*net.TCPAddr]
TCPAddr
func (*Group) TCPAddrSlice ¶
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)
Get retrieves the parsed value.
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.