Skip to content

Commit cb65f93

Browse files
refactor(parser): iterate split directly in ME221 row loop
Avoid allocating a Vec<&str> per line by using the split iterator directly. Addresses PR review feedback from gemini-code-assist.
1 parent 5f57ebb commit cb65f93

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

src/parsers/motorsport_electronics.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -286,13 +286,12 @@ impl Parseable for MotorsportElectronics {
286286
continue;
287287
}
288288

289-
let parts: Vec<&str> = line.split(',').collect();
290-
if parts.is_empty() {
289+
let mut parts = line.split(',');
290+
let Some(time_str) = parts.next() else {
291291
continue;
292-
}
292+
};
293293

294-
let time_str = parts[0].trim();
295-
let Ok(time_val) = time_str.parse::<f64>() else {
294+
let Ok(time_val) = time_str.trim().parse::<f64>() else {
296295
continue;
297296
};
298297

@@ -306,7 +305,7 @@ impl Parseable for MotorsportElectronics {
306305
times.push(relative_time);
307306

308307
let mut row: Vec<Value> = Vec::with_capacity(channels.len());
309-
for part in parts.iter().skip(1).take(effective_count.saturating_sub(1)) {
308+
for part in parts.take(effective_count.saturating_sub(1)) {
310309
let value = part.trim().parse::<f64>().unwrap_or(0.0);
311310
row.push(Value::Float(value));
312311
}

0 commit comments

Comments
 (0)