Documentation ¶
Index ¶
- type DynProto3Value
- func (d *DynProto3Value) Get() proto.Message
- func (d *DynProto3Value) PrettyString() string
- func (d *DynProto3Value) Set(input string) error
- func (d *DynProto3Value) String() string
- func (d *DynProto3Value) Type() string
- func (d *DynProto3Value) WithNotifier(notifier func(oldValue proto.Message, newValue proto.Message))
- func (d *DynProto3Value) WithValidator(validator func(proto.Message) error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DynProto3Value ¶
type DynProto3Value struct {
// contains filtered or unexported fields
}
DynJSONValue is a flag-related JSON struct value wrapper.
func DynProto3 ¶
func DynProto3(flagSet *flag.FlagSet, name string, value proto.Message, usage string) *DynProto3Value
DynProto3 creates a `Flag` that is backed by an arbitrary Proto3-generated datastructure which is safe to change dynamically at runtime either through JSONPB encoding or Proto encoding. The `value` must be a pointer to a struct that is JSONPB/Proto (un)marshallable. New values based on the default constructor of `value` type will be created on each update.
func (*DynProto3Value) Get ¶
func (d *DynProto3Value) Get() proto.Message
Get retrieves the value in its original JSON struct type in a thread-safe manner.
func (*DynProto3Value) PrettyString ¶
func (d *DynProto3Value) PrettyString() string
PrettyString returns a nicely structured representation of the type. In this case it returns a pretty-printed JSON.
func (*DynProto3Value) Set ¶
func (d *DynProto3Value) Set(input string) error
Set updates the value from a string representation in a thread-safe manner. This operation may return an error if the provided `input` doesn't parse, or the resulting value doesn't pass an optional validator. If a notifier is set on the value, it will be invoked in a separate go-routine.
func (*DynProto3Value) String ¶
func (d *DynProto3Value) String() string
String returns the canonical string representation of the type. In this case it returns the JSONPB representation of the object.
func (*DynProto3Value) Type ¶
func (d *DynProto3Value) Type() string
Type is an indicator of what this flag represents.
func (*DynProto3Value) WithNotifier ¶
func (d *DynProto3Value) WithNotifier(notifier func(oldValue proto.Message, newValue proto.Message))
WithNotifier adds a function is called every time a new value is successfully set. Each notifier is executed in a new go-routine.
func (*DynProto3Value) WithValidator ¶
func (d *DynProto3Value) WithValidator(validator func(proto.Message) error)
WithValidator adds a function that checks values before they're set. Any error returned by the validator will lead to the value being rejected. Validators are executed on the same go-routine as the call to `Set`.