From ed2934f3faa2819bb613a35313d1b8beebbc75f1 Mon Sep 17 00:00:00 2001 From: CosminPerRam Date: Sun, 30 Apr 2023 00:20:24 +0300 Subject: [PATCH] [Service] Replace repetitive code with a function --- src/services/valve_master_server/types.rs | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/services/valve_master_server/types.rs b/src/services/valve_master_server/types.rs index 85cfe28..c45fea1 100644 --- a/src/services/valve_master_server/types.rs +++ b/src/services/valve_master_server/types.rs @@ -185,29 +185,29 @@ impl<'a> SearchFilters<'a> { } } + fn special_filter_to_bytes(name: &str, filters: &HashMap, Filter>) -> Vec { + let mut bytes = Vec::new(); + + if !filters.is_empty() { + bytes.extend(name.as_bytes()); + bytes.extend(filters.len().to_string().as_bytes()); + for filter in filters.values() { + bytes.extend(filter.to_bytes()) + } + } + + bytes + } + pub(crate) fn to_bytes(&self) -> Vec { let mut bytes: Vec = Vec::new(); - // hmm, this is repetitive for filter in self.filters.values() { bytes.extend(filter.to_bytes()) } - if !self.nand_filters.is_empty() { - bytes.extend(b"\\nand\\".to_vec()); - bytes.extend(self.nand_filters.len().to_string().as_bytes()); - for filter in self.nand_filters.values() { - bytes.extend(filter.to_bytes()) - } - } - - if !self.nor_filters.is_empty() { - bytes.extend(b"\\nor\\".to_vec()); - bytes.extend(self.nor_filters.len().to_string().as_bytes()); - for filter in self.nor_filters.values() { - bytes.extend(filter.to_bytes()) - } - } + bytes.extend(SearchFilters::special_filter_to_bytes("nand", &self.nand_filters)); + bytes.extend(SearchFilters::special_filter_to_bytes("nor", &self.nor_filters)); bytes.extend([0x00]); bytes