Skip to content

Commit ff002ee

Browse files
authored
Merge pull request #45 from lonesometraveler/refactor_print_to_console
Refactor `print_to_console`
2 parents 597b573 + d7c8898 commit ff002ee

File tree

2 files changed

+11
-29
lines changed

2 files changed

+11
-29
lines changed

src/gui.rs

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ pub enum Print {
2525
Message(String),
2626
Error(String),
2727
Debug(String),
28-
Task(String),
2928
OK(String),
3029
}
3130

@@ -68,14 +67,6 @@ impl Print {
6867
color,
6968
})
7069
}
71-
Print::Task(s) => {
72-
let color = egui::Color32::WHITE;
73-
Some(ScrollAreaMessage {
74-
label: "[ ] ".to_owned(),
75-
content: s.to_owned(),
76-
color,
77-
})
78-
}
7970
Print::OK(s) => {
8071
let color = egui::Color32::GREEN;
8172
Some(ScrollAreaMessage {
@@ -94,18 +85,14 @@ pub struct ScrollAreaMessage {
9485
color: egui::Color32,
9586
}
9687

97-
pub fn print_to_console(print_lock: &Arc<RwLock<Vec<Print>>>, message: Print) -> usize {
98-
let mut length: usize = 0;
99-
if let Ok(mut write_guard) = print_lock.write() {
100-
write_guard.push(message);
101-
length = write_guard.len() - 1;
102-
}
103-
length
104-
}
105-
106-
pub fn update_in_console(print_lock: &Arc<RwLock<Vec<Print>>>, message: Print, index: usize) {
107-
if let Ok(mut write_guard) = print_lock.write() {
108-
write_guard[index] = message;
88+
pub fn print_to_console(print_lock: &Arc<RwLock<Vec<Print>>>, message: Print) {
89+
match print_lock.write() {
90+
Ok(mut write_guard) => {
91+
write_guard.push(message);
92+
}
93+
Err(e) => {
94+
println!("Error while writing to print_lock: {}", e);
95+
}
10996
}
11097
}
11198

src/main.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use std::sync::{mpsc, Arc, RwLock};
2121
use std::thread;
2222
use std::time::Duration;
2323

24-
use crate::gui::{load_gui_settings, print_to_console, update_in_console, MyApp, Print};
24+
use crate::gui::{load_gui_settings, print_to_console, MyApp, Print};
2525
use crate::io::save_to_csv;
2626
use crate::serial::serial_thread;
2727

@@ -92,22 +92,17 @@ fn main_thread(
9292
}
9393

9494
if let Ok(file_path) = save_rx.recv_timeout(Duration::from_millis(10)) {
95-
let print_index = print_to_console(
96-
&print_lock,
97-
Print::Task(format!("saving data file to {:?} ...", file_path)),
98-
);
9995
match save_to_csv(&data, &file_path) {
10096
Ok(_) => {
101-
update_in_console(
97+
print_to_console(
10298
&print_lock,
10399
Print::OK(format!("saved data file to {:?} ", file_path)),
104-
print_index,
105100
);
106101
}
107102
Err(e) => {
108103
print_to_console(
109104
&print_lock,
110-
Print::Error(format!("failed to save file: {e:?}")),
105+
Print::Error(format!("failed to save file to {:?}: {:?}", file_path, e)),
111106
);
112107
}
113108
}

0 commit comments

Comments
 (0)