cosmos-sdk/client/v2/autocli/flag/interface.go
2024-06-19 14:53:13 +00:00

33 lines
951 B
Go

package flag
import (
"context"
"github.com/spf13/pflag"
"google.golang.org/protobuf/reflect/protoreflect"
)
// Type specifies a custom flag type.
type Type interface {
// NewValue returns a new pflag.Value which must also implement either SimpleValue or ListValue.
NewValue(*context.Context, *Builder) Value
// DefaultValue is the default value for this type.
DefaultValue() string
}
// Value represents a single pflag.Value value.
type Value interface {
pflag.Value
HasValue
}
// HasValue wraps a reference to a protobuf value.
type HasValue interface {
// Get gets the value of the protobuf value reference and returns that value
// or an error. For composite protoreflect.Value types such as messages,
// lists and maps, a mutable reference to the value of field obtained with
// protoreflect.Message.NewField should be passed as the newFieldValue parameter.
Get(newFieldValue protoreflect.Value) (protoreflect.Value, error)
}