Documentation ¶
Index ¶
- func Default[T SupportedTypes](val T) *T
- func HasValue(f Param) bool
- type Composition
- type Handler
- type Optional
- func (f *Optional[T]) GetEnv() string
- func (f *Optional[T]) GetKind() reflect.Kind
- func (f *Optional[T]) GetName() string
- func (f *Optional[T]) GetOrElse(fallback T) T
- func (f *Optional[T]) GetOrElseF(fallback func() T) T
- func (f *Optional[T]) GetShort() string
- func (f *Optional[T]) GetType() reflect.Type
- func (f *Optional[T]) HasValue() bool
- func (f *Optional[T]) IsRequired() bool
- func (f *Optional[T]) SetDefault(val any)
- func (f *Optional[T]) SetEnv(val string)
- func (f *Optional[T]) SetName(val string)
- func (f *Optional[T]) SetShort(val string)
- func (f *Optional[T]) Value() *T
- type Param
- type ParamEnricher
- type Required
- func (f *Required[T]) GetEnv() string
- func (f *Required[T]) GetKind() reflect.Kind
- func (f *Required[T]) GetName() string
- func (f *Required[T]) GetShort() string
- func (f *Required[T]) GetType() reflect.Type
- func (f *Required[T]) HasValue() bool
- func (f *Required[T]) IsRequired() bool
- func (f *Required[T]) SetDefault(val any)
- func (f *Required[T]) SetEnv(val string)
- func (f *Required[T]) SetName(val string)
- func (f *Required[T]) SetShort(val string)
- func (f *Required[T]) Value() T
- type SupportedTypes
- type Wrap
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Default ¶
func Default[T SupportedTypes](val T) *T
Types ¶
type Composition ¶ added in v0.0.18
type Composition struct {
StructPtrs []any
}
func Compose ¶ added in v0.0.18
func Compose(structs ...any) *Composition
type Optional ¶
type Optional[T SupportedTypes] struct { Name string Short string Env string Default *T Descr string CustomValidator func(T) error Positional bool // contains filtered or unexported fields }
func (*Optional[T]) GetOrElseF ¶ added in v0.0.24
func (f *Optional[T]) GetOrElseF(fallback func() T) T
func (*Optional[T]) IsRequired ¶
func (*Optional[T]) SetDefault ¶
type ParamEnricher ¶
var ( ParamEnricherBool ParamEnricher = func(alreadyProcessed []Param, param Param, paramFieldName string) error { if param.GetKind() == reflect.Bool && !param.hasDefaultValue() { param.SetDefault(Default(false)) } return nil } ParamEnricherName ParamEnricher = func(alreadyProcessed []Param, param Param, paramFieldName string) error { if param.GetName() == "" { param.SetName(camelToKebabCase(paramFieldName)) } return nil } ParamEnricherShort ParamEnricher = func(alreadyProcessed []Param, param Param, paramFieldName string) error { if param.GetShort() == "" && param.GetName() != "" { wantShort := string(param.GetName()[0]) if wantShort == "h" { return nil } shortAvailable := true for _, other := range alreadyProcessed { if other.GetShort() == wantShort { shortAvailable = false } } if shortAvailable { param.SetShort(wantShort) } } return nil } ParamEnricherEnv ParamEnricher = func(alreadyProcessed []Param, param Param, paramFieldName string) error { if param.GetEnv() == "" && param.GetName() != "" && !param.isPositional() { param.SetEnv(kebabCaseToUpperSnakeCase(param.GetName())) } return nil } ParamEnricherDefault = ParamEnricherCombine( ParamEnricherName, ParamEnricherShort, ParamEnricherEnv, ParamEnricherBool, ) ParamEnricherNone = ParamEnricherCombine() )
func ParamEnricherCombine ¶
func ParamEnricherCombine(enrichers ...ParamEnricher) ParamEnricher
func ParamEnricherEnvPrefix ¶
func ParamEnricherEnvPrefix(prefix string) ParamEnricher
type Required ¶
type Required[T SupportedTypes] struct { Name string Short string Env string Default *T Descr string CustomValidator func(T) error Positional bool // contains filtered or unexported fields }
func (*Required[T]) IsRequired ¶
func (*Required[T]) SetDefault ¶
SetDefault Only to be used from ParamEnrichers. Use the regular parameters to set the default with type safety otherwise.
type SupportedTypes ¶
Click to show internal directories.
Click to hide internal directories.