+4
-4
src/parser.rs
+4
-4
src/parser.rs
···
266
266
}
267
267
Ok(XmlEvent::Characters(duration_str)) => {
268
268
if in_duration {
269
-
let duration_str = duration_str.replace(':', "");
270
269
duration = Some(duration_str);
271
270
}
272
271
}
···
275
274
}
276
275
277
276
let duration = duration.ok_or_else(|| anyhow!("Invalid response from device"))?;
278
-
let hours = duration[0..2].parse::<u32>()?;
279
-
let minutes = duration[2..4].parse::<u32>()?;
280
-
let seconds = duration[4..6].parse::<u32>()?;
277
+
let mut duration_iter = duration.split(":");
278
+
let hours = duration_iter.next().unwrap_or("0").parse::<u32>()?;
279
+
let minutes = duration_iter.next().unwrap_or("0").parse::<u32>()?;
280
+
let seconds = duration_iter.next().unwrap_or("0").parse::<u32>()?;
281
281
Ok(hours * 3600 + minutes * 60 + seconds)
282
282
}
283
283