@@ -44,29 +44,41 @@ impl PolicyEvaluator {
4444 /// - `RateLimit`: Keep based on rate limit decision
4545 pub async fn should_keep < M : Matchable > ( & self , item : & M ) -> bool {
4646 let snapshot = self . registry . snapshot ( ) ;
47+ let policy_count = snapshot. len ( ) ;
48+
49+ debug ! ( "POLICY | Evaluating item against {} policies" , policy_count) ;
4750
4851 match self . engine . evaluate ( & snapshot, item) . await {
49- Ok ( result) => match result {
50- EvaluateResult :: NoMatch | EvaluateResult :: Keep { .. } => true ,
51- EvaluateResult :: Drop { .. } => {
52- debug ! ( "POLICY | Dropping item due to policy" ) ;
53- false
54- }
55- EvaluateResult :: Sample {
56- keep, percentage, ..
57- } => {
58- if !keep {
59- debug ! ( "POLICY | Dropping item due to sampling ({}%)" , percentage) ;
52+ Ok ( result) => {
53+ debug ! ( "POLICY | Evaluation result: {:?}" , result) ;
54+ match result {
55+ EvaluateResult :: NoMatch => {
56+ debug ! ( "POLICY | No matching policy, keeping item" ) ;
57+ true
6058 }
61- keep
62- }
63- EvaluateResult :: RateLimit { allowed, .. } => {
64- if !allowed {
65- debug ! ( "POLICY | Dropping item due to rate limit" ) ;
59+ EvaluateResult :: Keep { .. } => {
60+ debug ! ( "POLICY | Policy matched, keeping item" ) ;
61+ true
62+ }
63+ EvaluateResult :: Drop { .. } => {
64+ debug ! ( "POLICY | Dropping item due to policy" ) ;
65+ false
66+ }
67+ EvaluateResult :: Sample {
68+ keep, percentage, ..
69+ } => {
70+ debug ! (
71+ "POLICY | Sampling decision: keep={}, percentage={}%" ,
72+ keep, percentage
73+ ) ;
74+ keep
75+ }
76+ EvaluateResult :: RateLimit { allowed, .. } => {
77+ debug ! ( "POLICY | Rate limit decision: allowed={}" , allowed) ;
78+ allowed
6679 }
67- allowed
6880 }
69- } ,
81+ }
7082 Err ( e) => {
7183 // Fail open: keep the item if evaluation fails
7284 warn ! ( "POLICY | Evaluation error, keeping item: {}" , e) ;
@@ -84,29 +96,44 @@ impl PolicyEvaluator {
8496 #[ must_use]
8597 pub fn should_keep_sync < M : Matchable > ( & self , item : & M ) -> bool {
8698 let snapshot = self . registry . snapshot ( ) ;
99+ let policy_count = snapshot. len ( ) ;
100+
101+ debug ! (
102+ "POLICY | Evaluating item (sync) against {} policies" ,
103+ policy_count
104+ ) ;
87105
88106 match futures:: executor:: block_on ( self . engine . evaluate ( & snapshot, item) ) {
89- Ok ( result) => match result {
90- EvaluateResult :: NoMatch | EvaluateResult :: Keep { .. } => true ,
91- EvaluateResult :: Drop { .. } => {
92- debug ! ( "POLICY | Dropping item due to policy" ) ;
93- false
94- }
95- EvaluateResult :: Sample {
96- keep, percentage, ..
97- } => {
98- if !keep {
99- debug ! ( "POLICY | Dropping item due to sampling ({}%)" , percentage) ;
107+ Ok ( result) => {
108+ debug ! ( "POLICY | Evaluation result: {:?}" , result) ;
109+ match result {
110+ EvaluateResult :: NoMatch => {
111+ debug ! ( "POLICY | No matching policy, keeping item" ) ;
112+ true
100113 }
101- keep
102- }
103- EvaluateResult :: RateLimit { allowed, .. } => {
104- if !allowed {
105- debug ! ( "POLICY | Dropping item due to rate limit" ) ;
114+ EvaluateResult :: Keep { .. } => {
115+ debug ! ( "POLICY | Policy matched, keeping item" ) ;
116+ true
117+ }
118+ EvaluateResult :: Drop { .. } => {
119+ debug ! ( "POLICY | Dropping item due to policy" ) ;
120+ false
121+ }
122+ EvaluateResult :: Sample {
123+ keep, percentage, ..
124+ } => {
125+ debug ! (
126+ "POLICY | Sampling decision: keep={}, percentage={}%" ,
127+ keep, percentage
128+ ) ;
129+ keep
130+ }
131+ EvaluateResult :: RateLimit { allowed, .. } => {
132+ debug ! ( "POLICY | Rate limit decision: allowed={}" , allowed) ;
133+ allowed
106134 }
107- allowed
108135 }
109- } ,
136+ }
110137 Err ( e) => {
111138 // Fail open: keep the item if evaluation fails
112139 warn ! ( "POLICY | Evaluation error, keeping item: {}" , e) ;
0 commit comments