Versions in this module Expand all Collapse all v2 v2.0.2 Mar 25, 2024 Changes in this version + const AggVariableDefaultedEvent + const AggVariableEvaluatedEvent + const ComparatorContain + const ComparatorEqual + const ComparatorExist + const ComparatorGreater + const ComparatorGreaterEqual + const ComparatorLess + const ComparatorLessEqual + const ComparatorNotContain + const ComparatorNotEqual + const ComparatorNotExist + const DataKeyTypeBoolean + const DataKeyTypeNumber + const DataKeyTypeString + const OperatorAnd + const OperatorOr + const SubTypeAppVersion + const SubTypeCountry + const SubTypeCustomData + const SubTypeDeviceModel + const SubTypeEmail + const SubTypeIP + const SubTypePlatform + const SubTypePlatformVersion + const SubTypeUserID + const TypeAll + const TypeAudienceMatch + const TypeOptIn + const TypeUser + const VariableDefaultedEvent + const VariableEvaluatedEvent + const VariableTypesBool + const VariableTypesJSON + const VariableTypesNumber + const VariableTypesString + var ErrFailedToDecideVariation = errors.New("Failed to decide target variation") + var ErrInvalidVariableType = errors.New("Invalid variable type") + var ErrMissingFeature = errors.New("Config missing feature for variable") + var ErrMissingVariable = errors.New("Config missing variable") + var ErrMissingVariableForVariation = errors.New("Config missing variable for variation") + var ErrMissingVariation = errors.New("Config missing variation") + var ErrQueueFull = fmt.Errorf("Max queue size reached") + var ErrUserDoesNotQualifyForTargets = errors.New("User does not qualify for any targets for feature") + var ErrUserRollout = errors.New("User does not qualify for feature rollout") + func GenerateBucketedConfig(sdkKey string, user api.PopulatedUser, clientCustomData map[string]interface{}) (*api.BucketedUserConfig, error) + func GetClientCustomData(sdkKey string) map[string]interface + func SetClientCustomData(sdkKey string, data map[string]interface{}) + func SetConfig(rawJSON []byte, sdkKey, etag string, eventQueue ...*EventQueue) error + func VariableForUser(sdkKey string, user api.PopulatedUser, variableKey string, ...) (variableType string, variableValue any, err error) + type AggregateEventQueue map[string]VariableAggMap + func (agg *AggregateEventQueue) BuildBatchRecords(platformData *api.PlatformData) api.UserEventsBatchRecord + type AllFilter struct + type Audience struct + Id string + type AudienceMatchFilter struct + Audiences []string + func (f AudienceMatchFilter) GetComparator() string + func (f AudienceMatchFilter) GetSubType() string + func (f AudienceMatchFilter) GetType() string + func (f AudienceMatchFilter) Type() string + func (filter *AudienceMatchFilter) Evaluate(audiences map[string]NoIdAudience, user api.PopulatedUser, ...) bool + type AudienceOperator struct + Filters MixedFilters + Operator string + func (o AudienceOperator) GetFilters() []FilterOrOperator + func (o AudienceOperator) GetOperator() string + func (operator AudienceOperator) Evaluate(audiences map[string]NoIdAudience, user api.PopulatedUser, ...) bool + type ConfigFeature struct + Configuration FeatureConfiguration + Id string + Key string + Settings map[string]interface{} + Type string + Variations []*Variation + type CustomDataFilter struct + DataKey string + DataKeyType string + func (f CustomDataFilter) GetComparator() string + func (f CustomDataFilter) GetSubType() string + func (f CustomDataFilter) GetType() string + func (f CustomDataFilter) SubType() string + func (f CustomDataFilter) Type() string + func (filter *CustomDataFilter) Evaluate(audiences map[string]NoIdAudience, user api.PopulatedUser, ...) bool + type EventQueue struct + func NewEventQueue(sdkKey string, options *api.EventQueueOptions, platformData *api.PlatformData) (*EventQueue, error) + func (eq *EventQueue) Close() (err error) + func (eq *EventQueue) FlushEventQueue() (map[string]api.FlushPayload, error) + func (eq *EventQueue) HandleFlushResults(successPayloads []string, failurePayloads []string, ...) + func (eq *EventQueue) MergeAggEventQueueKeys(config *configBody) + func (eq *EventQueue) Metrics() (int32, int32, int32) + func (eq *EventQueue) QueueAggregateEvent(config api.BucketedUserConfig, event api.Event) error + func (eq *EventQueue) QueueEvent(user api.User, event api.Event) error + func (eq *EventQueue) QueueVariableEvaluatedEvent(variableKey, featureId, variationId string, variableDefaulted bool) error + func (eq *EventQueue) UserQueueLength() int + type FeatureAggMap map[string]VariationAggMap + type FeatureConfiguration struct + ForcedUsers map[string]string + Id string + Prerequisites []FeaturePrerequisites + Targets []*Target + WinningVariation api.FeatureVariation + type FeaturePrerequisites struct + Comparator string + Feature string + type FilterOrOperator interface + Evaluate func(audiences map[string]NoIdAudience, user api.PopulatedUser, ...) bool + type InitializedFilter interface + Initialize func() error + type MixedFilters []FilterOrOperator + func (m *MixedFilters) UnmarshalJSON(data []byte) error + type NativeBucketingConfiguration struct + DisableAutomaticEventLogging bool + DisableCustomEventLogging bool + FlushEventsInterval time.Duration + type NoIdAudience struct + Filters *AudienceOperator + type NoPassFilter struct + func (filter NoPassFilter) Evaluate(audiences map[string]NoIdAudience, user api.PopulatedUser, ...) bool + type OptInFilter struct + type OptionsType struct + Lexicographical bool + ZeroExtend bool + type PassFilter struct + func (filter PassFilter) Evaluate(audiences map[string]NoIdAudience, user api.PopulatedUser, ...) bool + type Rollout struct + Stages []RolloutStage + StartDate time.Time + StartPercentage float64 + Type string + type RolloutStage struct + Date time.Time + Percentage float64 + Type string + type Target struct + Audience *Audience + Distribution []TargetDistribution + Id string + Rollout *Rollout + func (t *Target) DecideTargetVariation(boundedHash float64) (string, error) + type TargetDistribution struct + Percentage float64 + Variation string + type UserEventQueue map[string]api.UserEventsBatchRecord + func (u *UserEventQueue) BuildBatchRecords() []api.UserEventsBatchRecord + type UserFilter struct + CompiledBoolVals []bool + CompiledNumVals []float64 + CompiledStringVals []string + Values []interface{} + func (f *UserFilter) Initialize() error + func (f UserFilter) GetComparator() string + func (f UserFilter) GetSubType() string + func (f UserFilter) GetType() string + func (f UserFilter) Type() string + func (filter *UserFilter) Evaluate(audiences map[string]NoIdAudience, user api.PopulatedUser, ...) bool + type Variable struct + Id string + Key string + Type string + type VariableAggMap map[string]FeatureAggMap + type Variation struct + Id string + Key string + Name string + Variables []VariationVariable + func (v *Variation) GetVariableById(id string) *VariationVariable + type VariationAggMap map[string]int64 + type VariationVariable struct + Value interface{} + Var string