refactor: Simplify validation parsing using let-chains in sync.rs and wrap unsafe env::set_var in tests

- Replace nested if-let statements with let-chain pattern for VmRSS memory parsing in /proc/self/status
- Replace nested if-let statements with let-chain pattern for Redis used_memory parsing
- Wrap std::env::set_var calls in unsafe blocks in validation_tests.rs for MAX_BYTES_LIMIT and MAX_AMOUNT_LIMIT
This commit is contained in:
nutcas3
2026-05-01 00:43:54 +03:00
parent 11065b827b
commit 4e4b13f3e8
2 changed files with 10 additions and 14 deletions
+8 -12
View File
@@ -221,12 +221,10 @@ impl crate::charging::ChargingEngine {
// Try to read from /proc/self/status for Linux systems
if let Ok(status) = fs::read_to_string("/proc/self/status") {
for line in status.lines() {
if line.starts_with("VmRSS:") {
if let Some(memory_str) = line.split_whitespace().nth(1) {
if let Ok(memory_kb) = memory_str.parse::<u64>() {
return Ok(memory_kb * 1024); // Convert KB to bytes
}
}
if line.starts_with("VmRSS:")
&& let Some(memory_str) = line.split_whitespace().nth(1)
&& let Ok(memory_kb) = memory_str.parse::<u64>() {
return Ok(memory_kb * 1024); // Convert KB to bytes
}
}
}
@@ -254,13 +252,11 @@ impl crate::charging::ChargingEngine {
// Parse memory usage from Redis info
for line in info.lines() {
if line.starts_with("used_memory:") {
if let Some(memory_str) = line.split(':').nth(1) {
if let Ok(memory_bytes) = memory_str.parse::<u64>() {
return Ok(memory_bytes);
}
if line.starts_with("used_memory:")
&& let Some(memory_str) = line.split(':').nth(1)
&& let Ok(memory_bytes) = memory_str.parse::<u64>() {
return Ok(memory_bytes);
}
}
}
// Fallback to estimate
@@ -12,7 +12,7 @@ fn test_validate_bytes_zero() {
#[test]
fn test_validate_bytes_exceeds_limit() {
std::env::set_var("MAX_BYTES_LIMIT", "1000000000000");
unsafe { std::env::set_var("MAX_BYTES_LIMIT", "1000000000000"); }
let result = validate_bytes(2_000_000_000_000); // 2TB
assert!(result.is_err());
match result.unwrap_err() {
@@ -75,7 +75,7 @@ fn test_validate_amount_negative() {
#[test]
fn test_validate_amount_exceeds_limit() {
std::env::set_var("MAX_AMOUNT_LIMIT", "10000");
unsafe { std::env::set_var("MAX_AMOUNT_LIMIT", "10000"); }
let result = validate_amount(20_000.0);
assert!(result.is_err());
match result.unwrap_err() {