protoflagz

package
v0.0.0-...-55d3828 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2016 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

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`.

Jump to

Keyboard shortcuts

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