diff --git a/src/controller/view_utils/signal_reduce_input_utils.rs b/src/controller/view_utils/signal_reduce_input_utils.rs
index 92537f5..fd138ab 100644
--- a/src/controller/view_utils/signal_reduce_input_utils.rs
+++ b/src/controller/view_utils/signal_reduce_input_utils.rs
@@ -1,28 +1,31 @@
use gtk4 as gtk;
-use std::{num::ParseFloatError, str::FromStr};
+use std::str::FromStr;
use gtk::{
prelude::{TextBufferExt, TextViewExt},
TextBuffer,
};
-use crate::{model::models::SignalReduce, view::components::input::Input};
+use crate::{
+ model::{models::SignalReduce, Error, Result},
+ view::components::input::Input,
+};
-pub fn get_error_message(error_instance: ParseFloatError) -> Option<&'static str> {
- match error_instance.to_string().as_str() {
+pub fn get_error_message(error: Error) -> Option<&'static str> {
+ match error.to_string().as_str() {
"cannot parse float from empty string" => Some("Вы не ввели данные в поле/-я"),
"invalid float literal" => Some("Вы ввели не корректные данные в поле/-я"),
_ => None,
}
}
-pub fn parse_fields(all_inputs: Vec) -> Result {
- let mut values: [f64; 6] = [0f64; 6];
+pub fn parse_fields(all_inputs: Vec) -> Result {
+ let mut values: [f64; 6] = [0.0; 6];
for (i, input) in all_inputs.iter().enumerate() {
let input_text_buffer: TextBuffer = input.clone().get_input().buffer();
- let try_extract_value = f64::from_str(
+ let extracted_value = f64::from_str(
input_text_buffer
.text(
&input_text_buffer.start_iter(),
@@ -31,14 +34,16 @@ pub fn parse_fields(all_inputs: Vec) -> Result values[i] = value,
- Err(error) => return Err(error),
- }
+ )?;
+ values[i] = extracted_value;
}
- Ok(SignalReduce(
- values[0], values[1], values[2], values[3], values[4], values[5],
- ))
+ Ok(SignalReduce {
+ length: values[0],
+ wire_resistance: values[1],
+ wire_capacity: values[2],
+ source_resistance: values[3],
+ source_voltage: values[4],
+ frequency: values[5],
+ })
}