From 3d7015a827440c4af2c5363535e1ca3822bcfc93 Mon Sep 17 00:00:00 2001 From: dd di cesare Date: Wed, 12 Jul 2023 17:01:04 +0200 Subject: [PATCH] [refactor] Replacing nesting conditionals and calling once process_counter --- limitador/src/storage/in_memory.rs | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/limitador/src/storage/in_memory.rs b/limitador/src/storage/in_memory.rs index 4f2230f4..24227ed3 100644 --- a/limitador/src/storage/in_memory.rs +++ b/limitador/src/storage/in_memory.rs @@ -132,20 +132,17 @@ impl CounterStorage for InMemoryStorage { } continue; } - if let Some(limits) = limits_by_namespace.get(counter.limit().namespace()) { - if let Some(counters) = limits.get(counter.limit()) { - if let Some(expiring_value) = counters.get(&counter.into()) { - let value = expiring_value.value(); - if let Some(Authorization::Limited(counter_limited)) = - process_counter(counter, value, delta) - { - if !load_counters { - return Ok(Authorization::Limited(counter_limited)); - } - } - } - } - } else if let Some(limited) = process_counter(counter, 0, delta) { + + let value = Some( + limits_by_namespace + .get(counter.limit().namespace()) + .and_then(|limits| limits.get(counter.limit())) + .and_then(|counters| counters.get(&counter.into())) + .map(|expiring_value| expiring_value.value()) + .unwrap_or(0), + ); + + if let Some(limited) = process_counter(counter, value.unwrap(), delta) { if !load_counters { return Ok(limited); }