- package config
- import "strconv"
-
- // Flag represents a nullable boolean value that is considered null until
- // either parsed from YAML or merged in from another Flag value.
- //
- type Flag struct {
- True bool
- set bool
- }
-
- // UnmarshalJSON implements json.Unmarshaler to parse the underlying boolean
- // value and detect that the Flag should no longer be considered null.
- //
- func (flag *Flag) UnmarshalJSON(unmarshal []byte) error {
- var err error
- flag.True, err = strconv.ParseBool(string(unmarshal))
- if err != nil {
- return err
- }
-
- flag.set = true
-
- return nil
- }
-
- // Merge takes another flag and, if set, merged its boolean value into this
- // one.
- //
- func (flag *Flag) Merge(flag2 Flag) {
- if flag2.set {
- flag.True = flag2.True
- flag.set = true
- }
- }
|