@@ -61,7 +61,6 @@ use crate::proto::confidence::flags::resolver::v1::{
61
61
ResolveWithStickyRequest , ResolveWithStickySuccess ,
62
62
} ;
63
63
use crate :: resolve_logger:: ResolveLogger ;
64
- use crate :: ResolveWithStickyContext :: EmptyStickyContext ;
65
64
66
65
impl TryFrom < Vec < u8 > > for ResolverStatePb {
67
66
type Error = ErrorCode ;
@@ -398,15 +397,6 @@ pub struct AccountResolver<'a, H: Host> {
398
397
host : PhantomData < H > ,
399
398
}
400
399
401
- pub enum ResolveWithStickyContext {
402
- WithStickyContext ( StickyResolveContext ) ,
403
- EmptyStickyContext ,
404
- }
405
-
406
- pub struct StickyResolveContext {
407
- context : MaterializationContext ,
408
- }
409
-
410
400
#[ derive( Debug ) ]
411
401
pub enum ResolveFlagError {
412
402
Message ( String ) ,
@@ -538,14 +528,7 @@ impl<'a, H: Host> AccountResolver<'a, H> {
538
528
let mut resolve_results = Vec :: with_capacity ( flags_to_resolve. len ( ) ) ;
539
529
540
530
for flag in flags_to_resolve {
541
- let sticky_context = if let Some ( context) = & request. materialization_context {
542
- ResolveWithStickyContext :: WithStickyContext ( StickyResolveContext {
543
- context : context. clone ( ) ,
544
- } )
545
- } else {
546
- EmptyStickyContext
547
- } ;
548
- let resolve_result = self . resolve_flag ( flag, sticky_context) ;
531
+ let resolve_result = self . resolve_flag ( flag, request. materialization_context . clone ( ) ) ;
549
532
match resolve_result {
550
533
Ok ( resolve_result) => resolve_results. push ( resolve_result) ,
551
534
Err ( err) => {
@@ -752,7 +735,7 @@ impl<'a, H: Host> AccountResolver<'a, H> {
752
735
. flags
753
736
. get ( flag_name)
754
737
. ok_or ( ResolveFlagError :: err ( "flag not found" ) )
755
- . and_then ( |flag| self . resolve_flag ( flag, EmptyStickyContext ) )
738
+ . and_then ( |flag| self . resolve_flag ( flag, None ) )
756
739
}
757
740
758
741
pub fn collect_missing_materializations (
@@ -801,7 +784,7 @@ impl<'a, H: Host> AccountResolver<'a, H> {
801
784
pub fn resolve_flag (
802
785
& ' a self ,
803
786
flag : & ' a Flag ,
804
- sticky_context : ResolveWithStickyContext ,
787
+ sticky_context : Option < MaterializationContext > ,
805
788
) -> Result < FlagResolveResult < ' a > , ResolveFlagError > {
806
789
let mut updates: Vec < MaterializationUpdate > = Vec :: new ( ) ;
807
790
let mut resolved_value = ResolvedValue :: new ( flag) ;
@@ -847,10 +830,10 @@ impl<'a, H: Host> AccountResolver<'a, H> {
847
830
848
831
let mut materialization_matched = false ;
849
832
if let Some ( materialization_spec) = & rule. materialization_spec {
850
- if let ResolveWithStickyContext :: WithStickyContext ( ctx ) = & sticky_context {
833
+ if let Some ( context ) = & sticky_context {
851
834
let read_materialization = & materialization_spec. read_materialization ;
852
835
if !read_materialization. is_empty ( ) {
853
- if let Some ( info) = ctx . context . unit_materialization_info . get ( & unit) {
836
+ if let Some ( info) = context. unit_materialization_info . get ( & unit) {
854
837
materialization_matched = if !info. unit_in_info {
855
838
if materialization_spec
856
839
. mode
@@ -1497,9 +1480,7 @@ mod tests {
1497
1480
. get_resolver_with_json_context ( SECRET , context_json, & ENCRYPTION_KEY )
1498
1481
. unwrap ( ) ;
1499
1482
let flag = resolver. state . flags . get ( "flags/tutorial-feature" ) . unwrap ( ) ;
1500
- let resolve_result = resolver
1501
- . resolve_flag ( flag, ResolveWithStickyContext :: EmptyStickyContext )
1502
- . unwrap ( ) ;
1483
+ let resolve_result = resolver. resolve_flag ( flag, None ) . unwrap ( ) ;
1503
1484
let resolved_value = & resolve_result. resolved_value ;
1504
1485
let assignment_match = resolved_value. assignment_match . as_ref ( ) . unwrap ( ) ;
1505
1486
@@ -1521,7 +1502,7 @@ mod tests {
1521
1502
. unwrap ( ) ;
1522
1503
let flag = resolver. state . flags . get ( "flags/tutorial-feature" ) . unwrap ( ) ;
1523
1504
let assignment_match = resolver
1524
- . resolve_flag ( flag, ResolveWithStickyContext :: EmptyStickyContext )
1505
+ . resolve_flag ( flag, None )
1525
1506
. unwrap ( )
1526
1507
. resolved_value
1527
1508
. assignment_match
@@ -1918,7 +1899,7 @@ mod tests {
1918
1899
. flags
1919
1900
. get ( "flags/fallthrough-test-2" )
1920
1901
. unwrap ( ) ;
1921
- let resolve_result = resolver. resolve_flag ( flag, EmptyStickyContext ) . unwrap ( ) ;
1902
+ let resolve_result = resolver. resolve_flag ( flag, None ) . unwrap ( ) ;
1922
1903
let resolved_value = & resolve_result. resolved_value ;
1923
1904
1924
1905
assert_eq ! ( resolved_value. reason as i32 , ResolveReason :: Match as i32 ) ;
@@ -1945,7 +1926,7 @@ mod tests {
1945
1926
. flags
1946
1927
. get ( "flags/fallthrough-test-2" )
1947
1928
. unwrap ( ) ;
1948
- let resolve_result = resolver. resolve_flag ( flag, EmptyStickyContext ) . unwrap ( ) ;
1929
+ let resolve_result = resolver. resolve_flag ( flag, None ) . unwrap ( ) ;
1949
1930
let resolved_value = & resolve_result. resolved_value ;
1950
1931
1951
1932
assert_eq ! (
0 commit comments