flagsets

package
v2.0.0-...-98cc131 Latest Latest
Warning

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

Go to latest
Published: Jul 26, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NopConfigHandler = NewNopConfigHandler()

NopConfigHandler is a dummy config handler doing nothing.

Functions

func AddFieldByMappedOption

func AddFieldByMappedOption(opts OptionValueProvider, oname string, config Config, mapper func(interface{}) (interface{}, error), names ...string) error

func AddFieldByMappedOptionP

func AddFieldByMappedOptionP(opts OptionValueProvider, p NameProvider, config Config, mapper func(interface{}) (interface{}, error), names ...string) error

func AddFieldByOption

func AddFieldByOption(opts OptionValueProvider, oname string, config Config, names ...string) error

AddFieldByOption sets the specified target field with the option value, if given. If no target field is specified the name of the option is used.

func AddFieldByOptionP

func AddFieldByOptionP(opts OptionValueProvider, p NameProvider, config Config, names ...string) error

AddFieldByOptionP sets the specified target field with the option value, if given. The option is specified by a name provider instead of its name. If no target field is specified the name of the option is used.

func AddGroups

func AddGroups(list []string, groups ...string) []string

func FormatConfigOptions

func FormatConfigOptions(handler ConfigOptionTypeSetHandler) string

func GetField

func GetField(config Config, names ...string) (interface{}, error)

func SetField

func SetField(config Config, value interface{}, names ...string) error

Types

type BoolOption

type BoolOption struct {
	OptionBase
	// contains filtered or unexported fields
}

func (*BoolOption) AddFlags

func (o *BoolOption) AddFlags(fs *pflag.FlagSet)

func (*BoolOption) Value

func (o *BoolOption) Value() interface{}

type BoolOptionType

type BoolOptionType struct {
	TypeOptionBase
}

func (*BoolOptionType) Create

func (s *BoolOptionType) Create() Option

func (*BoolOptionType) Equal

func (s *BoolOptionType) Equal(optionType ConfigOptionType) bool

type BytesOption

type BytesOption struct {
	OptionBase
	// contains filtered or unexported fields
}

func (*BytesOption) AddFlags

func (o *BytesOption) AddFlags(fs *pflag.FlagSet)

func (*BytesOption) Value

func (o *BytesOption) Value() interface{}

type BytesOptionType

type BytesOptionType struct {
	TypeOptionBase
}

func (*BytesOptionType) Create

func (s *BytesOptionType) Create() Option

func (*BytesOptionType) Equal

func (s *BytesOptionType) Equal(optionType ConfigOptionType) bool

type Config

type Config = map[string]interface{}

Config is a generic structured config stored in a string map.

type ConfigAdder

type ConfigAdder func(options ConfigOptions, config Config) error

ConfigAdder is used to incorporate a partial config into an existing one.

func ComposedAdder

func ComposedAdder(adders ...ConfigAdder) ConfigAdder

func (ConfigAdder) ApplyConfig

func (c ConfigAdder) ApplyConfig(options ConfigOptions, config Config) error

type ConfigHandler

type ConfigHandler interface {
	ApplyConfig(options ConfigOptions, config Config) error
}

ConfigHandler describes the ConfigAdder functionality.

func NewNopConfigHandler

func NewNopConfigHandler() ConfigHandler

type ConfigOptionType

type ConfigOptionType interface {
	GetName() string
	GetDescription() string

	Create() Option

	Equal(optionType ConfigOptionType) bool
}

func NewBoolOptionType

func NewBoolOptionType(name string, description string) ConfigOptionType

func NewBytesOptionType

func NewBytesOptionType(name string, description string) ConfigOptionType

func NewIntOptionType

func NewIntOptionType(name string, description string) ConfigOptionType

func NewStringArrayOptionType

func NewStringArrayOptionType(name string, description string) ConfigOptionType

func NewStringMapOptionType

func NewStringMapOptionType(name string, description string) ConfigOptionType

func NewStringOptionType

func NewStringOptionType(name string, description string) ConfigOptionType

func NewValueMapOptionType

func NewValueMapOptionType(name string, description string) ConfigOptionType

func NewValueMapYAMLOptionType

func NewValueMapYAMLOptionType(name string, description string) ConfigOptionType

func NewYAMLOptionType

func NewYAMLOptionType(name string, description string) ConfigOptionType

type ConfigOptionTypeSet

type ConfigOptionTypeSet interface {
	AddGroups(groups ...string)

	GetName() string

	Size() int
	OptionTypes() []ConfigOptionType
	OptionTypeNames() []string
	SharedOptionTypes() []ConfigOptionType

	HasOptionType(name string) bool
	HasSharedOptionType(name string) bool

	GetSharedOptionType(name string) ConfigOptionType
	GetOptionType(name string) ConfigOptionType
	GetTypeSet(name string) ConfigOptionTypeSet
	OptionTypeSets() []ConfigOptionTypeSet

	AddOptionType(ConfigOptionType) error
	AddTypeSet(ConfigOptionTypeSet) error
	AddAll(o ConfigOptionTypeSet) (duplicated ConfigOptionTypeSet, err error)

	Close(funcs ...func([]ConfigOptionType) error) error

	CreateOptions() ConfigOptions
	AddGroupsToOption(o Option)
}

func NewConfigOptionSet

func NewConfigOptionSet(name string, types ...ConfigOptionType) ConfigOptionTypeSet

type ConfigOptionTypeSetHandler

type ConfigOptionTypeSetHandler interface {
	ConfigOptionTypeSet
	ConfigHandler
}

ConfigOptionTypeSetHandler describes a ConfigOptionTypeSet, which also provides the possibility to provide config.

func NewConfigOptionTypeSetHandler

func NewConfigOptionTypeSetHandler(name string, adder ConfigAdder, types ...ConfigOptionType) ConfigOptionTypeSetHandler

NewConfigOptionTypeSetHandler creates a new ConfigOptionTypeSetHandler.

type ConfigOptions

type ConfigOptions interface {
	AddTypeSetGroupsToOptions(set ConfigOptionTypeSet)

	AddFlags(fs *pflag.FlagSet)

	Options() []Option

	Check(set ConfigOptionTypeSet, desc string) error
	GetValue(name string) (interface{}, bool)
	Changed(names ...string) bool

	FilterBy(Filter) ConfigOptions
}

func NewOptions

func NewOptions(opts []Option) ConfigOptions

type ConfigProvider

type ConfigProvider interface {
	CreateOptions() ConfigOptions
	GetConfigFor(opts ConfigOptions) (Config, error)
}

type ConfigTypeOptionSetConfigProvider

type ConfigTypeOptionSetConfigProvider interface {
	ConfigProvider
	ConfigOptionTypeSet

	IsExplicitlySelected(opts ConfigOptions) bool
}

func NewPlainConfigProvider

func NewPlainConfigProvider(name string, adder ConfigAdder, types ...ConfigOptionType) ConfigTypeOptionSetConfigProvider

func NewTypedConfigProvider

func NewTypedConfigProvider(name string, desc string) ConfigTypeOptionSetConfigProvider

type Filter

type Filter func(name string) bool

func Not

func Not(f Filter) Filter

type IntOption

type IntOption struct {
	OptionBase
	// contains filtered or unexported fields
}

func (*IntOption) AddFlags

func (o *IntOption) AddFlags(fs *pflag.FlagSet)

func (*IntOption) Value

func (o *IntOption) Value() interface{}

type IntOptionType

type IntOptionType struct {
	TypeOptionBase
}

func (*IntOptionType) Create

func (s *IntOptionType) Create() Option

func (*IntOptionType) Equal

func (s *IntOptionType) Equal(optionType ConfigOptionType) bool

type NameProvider

type NameProvider interface {
	GetName() string
}

type Option

type Option interface {
	GetName() string
	AddFlags(fs *pflag.FlagSet)
	Value() interface{}

	Changed() bool
	AddGroups(groups ...string)
}

type OptionBase

type OptionBase struct {
	// contains filtered or unexported fields
}

func NewOptionBase

func NewOptionBase(otyp ConfigOptionType) OptionBase

func (*OptionBase) AddGroups

func (b *OptionBase) AddGroups(groups ...string)

func (*OptionBase) Changed

func (b *OptionBase) Changed() bool

func (*OptionBase) Description

func (b *OptionBase) Description() string

func (*OptionBase) GetName

func (b *OptionBase) GetName() string

func (*OptionBase) TweakFlag

func (b *OptionBase) TweakFlag(f *pflag.Flag)

func (*OptionBase) Type

func (b *OptionBase) Type() ConfigOptionType

type OptionName

type OptionName string

func (OptionName) GetName

func (n OptionName) GetName() string

type OptionValueProvider

type OptionValueProvider interface {
	GetValue(name string) (interface{}, bool)
}

OptionValueProvider provides values for named options.

type StringArrayOption

type StringArrayOption struct {
	OptionBase
	// contains filtered or unexported fields
}

func (*StringArrayOption) AddFlags

func (o *StringArrayOption) AddFlags(fs *pflag.FlagSet)

func (*StringArrayOption) Value

func (o *StringArrayOption) Value() interface{}

type StringArrayOptionType

type StringArrayOptionType struct {
	TypeOptionBase
}

func (*StringArrayOptionType) Create

func (s *StringArrayOptionType) Create() Option

func (*StringArrayOptionType) Equal

func (s *StringArrayOptionType) Equal(optionType ConfigOptionType) bool

type StringMapOption

type StringMapOption struct {
	OptionBase
	// contains filtered or unexported fields
}

func (*StringMapOption) AddFlags

func (o *StringMapOption) AddFlags(fs *pflag.FlagSet)

func (*StringMapOption) Value

func (o *StringMapOption) Value() interface{}

type StringMapOptionType

type StringMapOptionType struct {
	TypeOptionBase
}

func (*StringMapOptionType) Create

func (s *StringMapOptionType) Create() Option

func (*StringMapOptionType) Equal

func (s *StringMapOptionType) Equal(optionType ConfigOptionType) bool

type StringOption

type StringOption struct {
	OptionBase
	// contains filtered or unexported fields
}

func (*StringOption) AddFlags

func (o *StringOption) AddFlags(fs *pflag.FlagSet)

func (*StringOption) Value

func (o *StringOption) Value() interface{}

type StringOptionType

type StringOptionType struct {
	TypeOptionBase
}

func (*StringOptionType) Create

func (s *StringOptionType) Create() Option

func (*StringOptionType) Equal

func (s *StringOptionType) Equal(optionType ConfigOptionType) bool

type TypeOptionBase

type TypeOptionBase struct {
	// contains filtered or unexported fields
}

func (*TypeOptionBase) GetDescription

func (b *TypeOptionBase) GetDescription() string

func (*TypeOptionBase) GetName

func (b *TypeOptionBase) GetName() string

type ValueMapOption

type ValueMapOption struct {
	OptionBase
	// contains filtered or unexported fields
}

func (*ValueMapOption) AddFlags

func (o *ValueMapOption) AddFlags(fs *pflag.FlagSet)

func (*ValueMapOption) Value

func (o *ValueMapOption) Value() interface{}

type ValueMapOptionType

type ValueMapOptionType struct {
	TypeOptionBase
}

func (*ValueMapOptionType) Create

func (s *ValueMapOptionType) Create() Option

func (*ValueMapOptionType) Equal

func (s *ValueMapOptionType) Equal(optionType ConfigOptionType) bool

type ValueMapYAMLOption

type ValueMapYAMLOption struct {
	OptionBase
	// contains filtered or unexported fields
}

func (*ValueMapYAMLOption) AddFlags

func (o *ValueMapYAMLOption) AddFlags(fs *pflag.FlagSet)

func (*ValueMapYAMLOption) Value

func (o *ValueMapYAMLOption) Value() interface{}

type ValueMapYAMLOptionType

type ValueMapYAMLOptionType struct {
	TypeOptionBase
}

func (*ValueMapYAMLOptionType) Create

func (s *ValueMapYAMLOptionType) Create() Option

func (*ValueMapYAMLOptionType) Equal

func (s *ValueMapYAMLOptionType) Equal(optionType ConfigOptionType) bool

type YAMLOption

type YAMLOption struct {
	OptionBase
	// contains filtered or unexported fields
}

func (*YAMLOption) AddFlags

func (o *YAMLOption) AddFlags(fs *pflag.FlagSet)

func (*YAMLOption) Value

func (o *YAMLOption) Value() interface{}

type YAMLOptionType

type YAMLOptionType struct {
	TypeOptionBase
}

func (*YAMLOptionType) Create

func (s *YAMLOptionType) Create() Option

func (*YAMLOptionType) Equal

func (s *YAMLOptionType) Equal(optionType ConfigOptionType) bool

Jump to

Keyboard shortcuts

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