helmfile/pkg/common/bool_flag.go

44 lines
1.0 KiB
Go

package common
// BoolFlag represents a boolean flag that tracks whether it was explicitly set
type BoolFlag interface {
// Value returns the current boolean value
Value() bool
// WasExplicitlySet returns whether the flag was explicitly set
WasExplicitlySet() bool
// Set sets the value and marks the flag as explicitly set
Set(value bool)
}
// boolFlag is the implementation of BoolFlag
type boolFlag struct {
value bool
wasExplicitlySet bool
}
// NewBoolFlag creates a new BoolFlag with default values
func NewBoolFlag(defaultValue bool) BoolFlag {
return &boolFlag{
value: defaultValue,
wasExplicitlySet: false,
}
}
// Value returns the current boolean value
func (bf *boolFlag) Value() bool {
return bf.value
}
// WasExplicitlySet returns whether the flag was explicitly set
func (bf *boolFlag) WasExplicitlySet() bool {
return bf.wasExplicitlySet
}
// Set sets the value and marks the flag as explicitly set
func (bf *boolFlag) Set(value bool) {
bf.value = value
bf.wasExplicitlySet = true
}