Skip to content

Commit 4591214

Browse files
authored
Merge pull request #15 from lonesometraveler/refactor_split
Refactor `fn split`
2 parents cda0165 + 0b51a2f commit 4591214

File tree

1 file changed

+6
-27
lines changed

1 file changed

+6
-27
lines changed

src/main.rs

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -28,36 +28,15 @@ use crate::serial::serial_thread;
2828
const APP_INFO: AppInfo = AppInfo { name: "Serial Monitor", author: "Linus Leo Stöckli" };
2929

3030
fn split(payload: &str) -> Vec<&str> {
31-
let delimiter_1;
32-
if payload.contains(": ") {
33-
delimiter_1 = ": ";
34-
} else {
35-
delimiter_1 = ":";
36-
}
37-
let delimiter_2;
38-
if payload.contains(", ") {
39-
delimiter_2 = ", ";
40-
} else {
41-
delimiter_2 = ",";
42-
}
4331
let mut split_data: Vec<&str> = vec![];
44-
let first_split = payload.split(delimiter_1).collect::<Vec<&str>>();
45-
for s in first_split.iter() {
46-
let s_split = s.split(delimiter_2).collect::<Vec<&str>>();
47-
for si in s_split.iter() {
48-
let mut contains_value = false;
49-
for char in si.bytes() {
50-
if b"-0.123456789".contains(&char) {
51-
contains_value = true;
52-
break;
53-
}
54-
}
55-
if contains_value {
56-
split_data.push(si);
57-
}
58-
}
32+
for s in payload.split(':') {
33+
split_data.extend(s.split(','));
5934
}
6035
split_data
36+
.iter()
37+
.map(|x| x.trim())
38+
.filter(|x| x.parse::<f32>().is_ok())
39+
.collect()
6140
}
6241

6342
fn main_thread(data_lock: Arc<RwLock<DataContainer>>,

0 commit comments

Comments
 (0)