36 lines
711 B
Go
36 lines
711 B
Go
package common
|
|
|
|
type StringFlag interface {
|
|
Value() string
|
|
WasExplicitlySet() bool
|
|
Set(value string)
|
|
}
|
|
|
|
type stringFlag struct {
|
|
value string
|
|
wasExplicitlySet bool
|
|
}
|
|
|
|
func NewStringFlag(defaultValue string) StringFlag {
|
|
return &stringFlag{
|
|
value: defaultValue,
|
|
wasExplicitlySet: false,
|
|
}
|
|
}
|
|
|
|
// Value returns the current boolean value
|
|
func (f *stringFlag) Value() string {
|
|
return f.value
|
|
}
|
|
|
|
// WasExplicitlySet returns whether the flag was explicitly set
|
|
func (f *stringFlag) WasExplicitlySet() bool {
|
|
return f.wasExplicitlySet
|
|
}
|
|
|
|
// Set sets the value and marks the flag as explicitly set
|
|
func (f *stringFlag) Set(value string) {
|
|
f.value = value
|
|
f.wasExplicitlySet = true
|
|
}
|