diff --git a/src/controller/model_utils/hamming_code_seven_four.rs b/src/controller/model_utils/hamming_code_seven_four.rs index 8aaf8a9..a53a4c6 100644 --- a/src/controller/model_utils/hamming_code_seven_four.rs +++ b/src/controller/model_utils/hamming_code_seven_four.rs @@ -18,27 +18,25 @@ static SYNDROMES: LazyLock> = LazyLock::new(| ]) }); -pub fn hamming(raw_input: String, mode: HammingMode) -> Result { +pub fn hamming(raw_input: String, mode: HammingMode) -> Result { let length_of_code: usize = mode.clone() as usize; let prepared_input: String = processing_input(&raw_input); - let (fc, sc): (bool, bool) = + let (first_condition, second_condition): (bool, bool) = check_correct_binary_code(&raw_input, &prepared_input, length_of_code); - if !fc || !sc { - Err("Ошибка. Проверьте корректность ввода.".to_string()) + if raw_input.is_empty() { + Err("Введите код.".into()) + } else if !first_condition || !second_condition { + Err("Проверьте корректность ввода.".into()) } else { - let mut data: String = String::new(); - let prepared_data: Vec = from_string_to_vec_bits(prepared_input); match mode { - HammingMode::Encrypt => hamming_encrypt_data(&prepared_data, &mut data, length_of_code), - HammingMode::Decrypt => hamming_decrypt_data(&prepared_data, &mut data, length_of_code), + HammingMode::Encrypt => Ok(hamming_encrypt_data(&prepared_data, length_of_code)), + HammingMode::Decrypt => Ok(hamming_decrypt_data(&prepared_data, length_of_code)), } - - Ok(data) } }