Set enables or disables a feature flag It should not be called directly by the user, but by SetFromEnv or SetFromYaml
(value bool)
| 75 | // Set enables or disables a feature flag |
| 76 | // It should not be called directly by the user, but by SetFromEnv or SetFromYaml |
| 77 | func (f *Feature) Set(value bool) error { |
| 78 | // retired feature flags are ignored |
| 79 | if f.State == RetiredState { |
| 80 | return ErrFeatureRetired |
| 81 | } |
| 82 | |
| 83 | f.enabled = value |
| 84 | |
| 85 | // deprecated feature flags are still accepted, but a warning is triggered. |
| 86 | // We return an error but set the feature anyway. |
| 87 | if f.State == DeprecatedState { |
| 88 | return ErrFeatureDeprecated |
| 89 | } |
| 90 | |
| 91 | return nil |
| 92 | } |
| 93 | |
| 94 | // A register allows to enable features from the environment or a file |
| 95 | type FeatureRegister struct { |
no outgoing calls