type SelectiveStringValue … // Set verifies the argument to be a valid member of the allowed values // before setting the underlying flag value. func (ss *SelectiveStringValue) Set(s string) error { … } // String returns the set value (if any) of the SelectiveStringValue func (ss *SelectiveStringValue) String() string { … } // Valids returns the list of valid strings. func (ss *SelectiveStringValue) Valids() []string { … } // NewSelectiveStringValue creates a new string flag // for which any one of the given strings is a valid value, // and any other value is an error. // // valids[0] will be default value. Caller must be sure // len(valids) != 0 or it will panic. func NewSelectiveStringValue(valids ...string) *SelectiveStringValue { … } type SelectiveStringsValue … // Set verifies the argument to be a valid member of the allowed values // before setting the underlying flag value. func (ss *SelectiveStringsValue) Set(s string) error { … } // String returns the set value (if any) of the SelectiveStringsValue. func (ss *SelectiveStringsValue) String() string { … } // Valids returns the list of valid strings. func (ss *SelectiveStringsValue) Valids() []string { … } // NewSelectiveStringsValue creates a new string slice flag // for which any one of the given strings is a valid value, // and any other value is an error. func NewSelectiveStringsValue(valids ...string) *SelectiveStringsValue { … }