From 0154afc6de54519ae1bbdcb00b95aacee0923d65 Mon Sep 17 00:00:00 2001 From: Garrett Squire Date: Wed, 13 Oct 2021 18:21:42 -0700 Subject: [PATCH] Refactor Use the retain function to remove the key from the list. --- src/hash_ring.rs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/hash_ring.rs b/src/hash_ring.rs index 35f6add..c040637 100644 --- a/src/hash_ring.rs +++ b/src/hash_ring.rs @@ -76,14 +76,7 @@ where return; } self.ring.remove(&key); - let mut index = 0; - for j in 0..self.sorted_keys.len() { - if self.sorted_keys[j] == key { - index = j; - break; - } - } - self.sorted_keys.remove(index); + self.sorted_keys.retain(|&k| k != key); } } @@ -150,7 +143,10 @@ mod test { assert_eq!(Some(&node(15325)), hash_ring.get_node("seven".to_string())); assert_eq!(Some(&node(15326)), hash_ring.get_node("hello".to_string())); assert_eq!(Some(&node(15327)), hash_ring.get_node("dude".to_string())); - assert_eq!(Some(&node(15328)), hash_ring.get_node("fourteen".to_string())); + assert_eq!( + Some(&node(15328)), + hash_ring.get_node("fourteen".to_string()) + ); assert_eq!(Some(&node(15329)), hash_ring.get_node("five".to_string())); hash_ring.remove_node(&node(15329));