@@ -52,6 +52,7 @@ const (
5252type  sdkStorages  struct  {
5353	splits               storage.SplitStorageConsumer 
5454	segments             storage.SegmentStorageConsumer 
55+ 	ruleBasedSegments    storage.RuleBasedSegmentStorageConsumer 
5556	impressionsConsumer  storage.ImpressionStorageConsumer 
5657	impressions          storage.ImpressionStorageProducer 
5758	events               storage.EventStorageProducer 
@@ -83,7 +84,7 @@ type SplitFactory struct {
8384func  (f  * SplitFactory ) Client () * SplitClient  {
8485	return  & SplitClient {
8586		logger :      f .logger ,
86- 		evaluator :   evaluator .NewEvaluator (f .storages .splits , f .storages .segments , engine .NewEngine (f .logger ), f .logger ),
87+ 		evaluator :   evaluator .NewEvaluator (f .storages .splits , f .storages .segments , f . storages . ruleBasedSegments ,  engine .NewEngine (f .logger ), f .logger ),
8788		impressions : f .storages .impressions ,
8889		events :      f .storages .events ,
8990		validator : inputValidation {
@@ -275,8 +276,8 @@ func setupInMemoryFactory(
275276	metadata  dtos.Metadata ,
276277) (* SplitFactory , error ) {
277278	advanced , warnings  :=  conf .NormalizeSDKConf (cfg .Advanced )
278- 	advanced .AuthSpecVersion  =  specs .FLAG_V1_1 
279- 	advanced .FlagsSpecVersion  =  specs .FLAG_V1_1 
279+ 	advanced .AuthSpecVersion  =  specs .FLAG_V1_3 
280+ 	advanced .FlagsSpecVersion  =  specs .FLAG_V1_3 
280281	printWarnings (logger , warnings )
281282	flagSetsInvalid  :=  int64 (len (cfg .Advanced .FlagSetsFilter ) -  len (advanced .FlagSetsFilter ))
282283	if  strings .TrimSpace (cfg .SplitSyncProxyURL ) !=  ""  {
@@ -288,6 +289,7 @@ func setupInMemoryFactory(
288289	flagSetFilter  :=  flagsets .NewFlagSetFilter (advanced .FlagSetsFilter )
289290	splitsStorage  :=  mutexmap .NewMMSplitStorage (flagSetFilter )
290291	segmentsStorage  :=  mutexmap .NewMMSegmentStorage ()
292+ 	ruleBasedSegmentStorage  :=  mutexmap .NewRuleBasedSegmentsStorage ()
291293	telemetryStorage , err  :=  inmemory .NewTelemetryStorage ()
292294	impressionsStorage  :=  mutexqueue .NewMQImpressionsStorage (cfg .Advanced .ImpressionsQueueSize , inMememoryFullQueue , logger , telemetryStorage )
293295	eventsStorage  :=  mutexqueue .NewMQEventsStorage (cfg .Advanced .EventsQueueSize , inMememoryFullQueue , logger , telemetryStorage )
@@ -299,7 +301,7 @@ func setupInMemoryFactory(
299301
300302	splitAPI  :=  api .NewSplitAPI (apikey , advanced , logger , metadata )
301303	workers  :=  synchronizer.Workers {
302- 		SplitUpdater :      split .NewSplitUpdater (splitsStorage , splitAPI .SplitFetcher , logger , telemetryStorage , dummyHC , flagSetFilter ),
304+ 		SplitUpdater :      split .NewSplitUpdater (splitsStorage , ruleBasedSegmentStorage ,  splitAPI .SplitFetcher , logger , telemetryStorage , dummyHC , flagSetFilter ),
303305		SegmentUpdater :    segment .NewSegmentUpdater (splitsStorage , segmentsStorage , splitAPI .SegmentFetcher , logger , telemetryStorage , dummyHC ),
304306		EventRecorder :     event .NewEventRecorderSingle (eventsStorage , splitAPI .EventRecorder , logger , metadata , telemetryStorage ),
305307		TelemetryRecorder : telemetry .NewTelemetrySynchronizer (telemetryStorage , splitAPI .TelemetryRecorder , splitsStorage , segmentsStorage , logger , metadata , telemetryStorage ),
@@ -317,6 +319,7 @@ func setupInMemoryFactory(
317319		impressionsConsumer : impressionsStorage ,
318320		impressions :         impressionsStorage ,
319321		segments :            segmentsStorage ,
322+ 		ruleBasedSegments :   ruleBasedSegmentStorage ,
320323		initTelemetry :       telemetryStorage ,
321324		evaluationTelemetry : telemetryStorage ,
322325		runtimeTelemetry :    telemetryStorage ,
@@ -468,6 +471,7 @@ func setupLocalhostFactory(
468471	flagSetFilter  :=  flagsets .NewFlagSetFilter (flagSets )
469472	splitStorage  :=  mutexmap .NewMMSplitStorage (flagSetFilter )
470473	segmentStorage  :=  mutexmap .NewMMSegmentStorage ()
474+ 	ruleBasedSegmentStorage  :=  mutexmap .NewRuleBasedSegmentsStorage ()
471475	telemetryStorage , err  :=  inmemory .NewTelemetryStorage ()
472476	if  err  !=  nil  {
473477		return  nil , err 
@@ -492,7 +496,7 @@ func setupLocalhostFactory(
492496	}
493497
494498	syncManager , err  :=  synchronizer .NewSynchronizerManager (
495- 		synchronizer .NewLocal (localConfig , splitAPI , splitStorage , segmentStorage , logger , telemetryStorage , dummyHC ),
499+ 		synchronizer .NewLocal (localConfig , splitAPI , splitStorage , segmentStorage , ruleBasedSegmentStorage ,  logger , telemetryStorage , dummyHC ),
496500		logger ,
497501		config.AdvancedConfig {StreamingEnabled : false },
498502		nil ,
@@ -518,6 +522,7 @@ func setupLocalhostFactory(
518522			splits :              splitStorage ,
519523			impressions :         mutexqueue .NewMQImpressionsStorage (cfg .Advanced .ImpressionsQueueSize , make (chan  string , 1 ), logger , telemetryStorage ),
520524			events :              mutexqueue .NewMQEventsStorage (cfg .Advanced .EventsQueueSize , make (chan  string , 1 ), logger , telemetryStorage ),
525+ 			ruleBasedSegments :   ruleBasedSegmentStorage ,
521526			segments :            segmentStorage ,
522527			initTelemetry :       telemetryStorage ,
523528			evaluationTelemetry : telemetryStorage ,
0 commit comments