Documentation ¶
Index ¶
- func Enabled(feature string, options ...FeatureOption) bool
- func Init(provider FeatureProvider, options ...ConfigOption)
- func UpdateDefault(from *FeatureManager)
- type ConfigOption
- type Feature
- type FeatureManager
- type FeatureOption
- type FeatureProvider
- type FeatureState
- type Handler
- type StateRepository
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Enabled ¶
func Enabled(feature string, options ...FeatureOption) bool
func Init ¶
func Init(provider FeatureProvider, options ...ConfigOption)
func UpdateDefault ¶
func UpdateDefault(from *FeatureManager)
Types ¶
type ConfigOption ¶
type ConfigOption func(*configOption)
func WithRepository ¶
func WithRepository(repository StateRepository) ConfigOption
type Feature ¶
type Feature struct { Name string `json:"name"` DefaultState FeatureState `json:"defaultState"` }
type FeatureManager ¶
type FeatureManager struct {
// contains filtered or unexported fields
}
func NewFeatureManager ¶
func NewFeatureManager(provider FeatureProvider, options ...ConfigOption) *FeatureManager
func (*FeatureManager) Enabled ¶
func (m *FeatureManager) Enabled(feature string, options ...FeatureOption) bool
func (*FeatureManager) Features ¶
func (m *FeatureManager) Features() []string
func (*FeatureManager) NewHandler ¶
func (m *FeatureManager) NewHandler() http.Handler
type FeatureOption ¶
type FeatureOption func(*featureOption)
func WithContext ¶
func WithContext(ctx context.Context) FeatureOption
type FeatureProvider ¶
type FeatureProvider func() []Feature
type FeatureState ¶
type StateRepository ¶
type StateRepository interface { GetState(ctx context.Context, name string) (*FeatureState, error) SetState(ctx context.Context, feature *FeatureState) error }
func DatabaseStateRepository ¶
func DatabaseStateRepository(database *sql.DB, tableName string) StateRepository
func InMemoryStateRepository ¶
func InMemoryStateRepository() StateRepository
func RedisStateRepository ¶
func RedisStateRepository(client *redis.Client) StateRepository
Source Files ¶
Click to show internal directories.
Click to hide internal directories.