goldhook

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2021 License: MIT Imports: 6 Imported by: 0

README

go-ld-hook

Hooks into Flag Evaluations for the LaunchDarkly Go SDK

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContextualEvaluator

type ContextualEvaluator interface {
	Evaluator
	WithContext(context.Context) Evaluator
}

type Evaluator

type Evaluator interface {
	BoolVariation(key string, user lduser.User, defaultVal bool) (bool, error)
	BoolVariationDetail(key string, user lduser.User, defaultVal bool) (bool, ldreason.EvaluationDetail, error)
	Float64Variation(key string, user lduser.User, defaultVal float64) (float64, error)
	Float64VariationDetail(key string, user lduser.User, defaultVal float64) (float64, ldreason.EvaluationDetail, error)
	IntVariation(key string, user lduser.User, defaultVal int) (int, error)
	IntVariationDetail(key string, user lduser.User, defaultVal int) (int, ldreason.EvaluationDetail, error)
	JSONVariation(key string, user lduser.User, defaultVal ldvalue.Value) (ldvalue.Value, error)
	JSONVariationDetail(key string, user lduser.User, defaultVal ldvalue.Value) (ldvalue.Value, ldreason.EvaluationDetail, error)
	StringVariation(key string, user lduser.User, defaultVal string) (string, error)
	StringVariationDetail(key string, user lduser.User, defaultVal string) (string, ldreason.EvaluationDetail, error)
}

Evaluator is the interface that describes the subset of all (most?) methods on an LDClient, which a consumer would invoke to retrieve the value of individual flags.

type ObservedEvaluator

type ObservedEvaluator struct {
	// contains filtered or unexported fields
}

func NewEvaluator

func NewEvaluator(ctx context.Context, client Evaluator, subscribers ...Observer) (*ObservedEvaluator, error)

func (*ObservedEvaluator) BoolVariation

func (oe *ObservedEvaluator) BoolVariation(key string, user lduser.User, defaultVal bool) (bool, error)

func (*ObservedEvaluator) BoolVariationDetail

func (oe *ObservedEvaluator) BoolVariationDetail(key string, user lduser.User, defaultVal bool) (bool, ldreason.EvaluationDetail, error)

func (*ObservedEvaluator) Float64Variation

func (oe *ObservedEvaluator) Float64Variation(key string, user lduser.User, defaultVal float64) (float64, error)

func (*ObservedEvaluator) Float64VariationDetail

func (oe *ObservedEvaluator) Float64VariationDetail(key string, user lduser.User, defaultVal float64) (float64, ldreason.EvaluationDetail, error)

func (*ObservedEvaluator) IntVariation

func (oe *ObservedEvaluator) IntVariation(key string, user lduser.User, defaultVal int) (int, error)

func (*ObservedEvaluator) IntVariationDetail

func (oe *ObservedEvaluator) IntVariationDetail(key string, user lduser.User, defaultVal int) (int, ldreason.EvaluationDetail, error)

func (*ObservedEvaluator) JSONVariation

func (oe *ObservedEvaluator) JSONVariation(key string, user lduser.User, defaultVal ldvalue.Value) (ldvalue.Value, error)

func (*ObservedEvaluator) JSONVariationDetail

func (oe *ObservedEvaluator) JSONVariationDetail(key string, user lduser.User, defaultVal ldvalue.Value) (ldvalue.Value, ldreason.EvaluationDetail, error)

func (*ObservedEvaluator) StringVariation

func (oe *ObservedEvaluator) StringVariation(key string, user lduser.User, defaultVal string) (string, error)

func (*ObservedEvaluator) StringVariationDetail

func (oe *ObservedEvaluator) StringVariationDetail(key string, user lduser.User, defaultVal string) (string, ldreason.EvaluationDetail, error)

func (*ObservedEvaluator) WithContext

func (oe *ObservedEvaluator) WithContext(c context.Context) Evaluator

type Observer

type Observer interface {
	// Observer is invoked with information concerning a feature flag evaluation
	//
	// If, at the callsite, the consumer did not take the pains to call the
	// evaluation using WithContext chained in beforehand, Observe will receive
	// a default context (i.e. provided by context.Background)
	Observe(
		ctx context.Context,
		key string,
		user lduser.User,
		callsiteDefault ldvalue.Value,
		elapsed time.Duration,
		detail ldreason.EvaluationDetail,
		evalErr error,
	)
}

Observer is interested in knowing the details about the results of a feature flag evaluation.

type ObserverFunc

type ObserverFunc func(
	ctx context.Context,
	key string,
	user lduser.User,
	callsiteDefault ldvalue.Value,
	elapsed time.Duration,
	detail ldreason.EvaluationDetail,
	evalErr error,
)

SubsriberFunc is a function adapter for the Observer interface

func (ObserverFunc) Observe

func (fn ObserverFunc) Observe(
	ctx context.Context,
	key string,
	user lduser.User,
	callsiteDefault ldvalue.Value,
	elapsed time.Duration,
	detail ldreason.EvaluationDetail,
	evalErr error,
)

Observe conforms to the Observer interface

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL