From b6bcad067b803fa048f97f6431479638d7246729 Mon Sep 17 00:00:00 2001 From: nutcas3 Date: Sun, 26 Apr 2026 00:44:00 +0300 Subject: [PATCH] refactor: Update rate limiter to use StateInformationMiddleware and QuantaClock - Change create_rate_limiter return type from InMemoryState/DefaultClock to StateInformationMiddleware with QuantaClock - Add StateInformationMiddleware import from governor::middleware - Add Arc import from std::sync - Remove explicit key_extractor field from GovernorLayer initialization --- apps/charging-engine/src/rate_limit.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/charging-engine/src/rate_limit.rs b/apps/charging-engine/src/rate_limit.rs index ad1f9b6..e29b826 100644 --- a/apps/charging-engine/src/rate_limit.rs +++ b/apps/charging-engine/src/rate_limit.rs @@ -6,14 +6,16 @@ use governor::{ clock::DefaultClock, state::InMemoryState, Jitter, Quota, RateLimiter, + middleware::StateInformationMiddleware, }; use std::num::NonZeroU32; +use std::sync::Arc; use tower_governor::{ governor::config::GovernorConfigBuilder, key_extractor::SmartIpKeyExtractor, }; -pub fn create_rate_limiter() -> tower_governor::GovernorLayer { +pub fn create_rate_limiter() -> tower_governor::GovernorLayer> { let requests_per_second: u32 = std::env::var("RATE_LIMIT_RPS") .ok() .and_then(|s| s.parse().ok()) @@ -34,7 +36,6 @@ pub fn create_rate_limiter() -> tower_governor::GovernorLayer