From 6682a669584cae97c06c7912a67473e9429a2197 Mon Sep 17 00:00:00 2001 From: doryan Date: Sat, 10 Aug 2024 00:36:27 +0400 Subject: [PATCH] fix(table): move table of syndromes into global static variable --- .../model_utils/hamming_code_seven_four.rs | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/controller/model_utils/hamming_code_seven_four.rs b/src/controller/model_utils/hamming_code_seven_four.rs index 55b4b88..0efdc97 100644 --- a/src/controller/model_utils/hamming_code_seven_four.rs +++ b/src/controller/model_utils/hamming_code_seven_four.rs @@ -5,6 +5,17 @@ use crate::{ model::models::*, }; +static SYNDROMES: LazyLock> = LazyLock::new(|| { + HashMap::from([ + (1, (false, true, true)), + (2, (false, false, true)), + (3, (true, false, true)), + (4, (false, true, false)), + (5, (true, true, false)), + (6, (true, false, false)), + (7, (false, false, false)), + ]) +}); pub fn hamming(raw_input: String, mode: HammingMode) -> Result { let length_of_code: usize = mode.clone() as usize; @@ -51,15 +62,6 @@ pub fn hamming_encrypt_data(data: &Vec, result_string: &mut String, length_o pub fn hamming_decrypt_data(data: &Vec, result_string: &mut String, length_of_code: usize) { let mut general_length: usize = length_of_code; - let syndromes: HashMap = HashMap::from([ - (1, (false, true, true)), - (2, (false, false, true)), - (3, (true, false, true)), - (4, (false, true, false)), - (5, (true, true, false)), - (6, (true, false, false)), - (7, (false, false, false)), - ]); let mut errors: String = String::new();