20 lines
626 B
Rust
20 lines
626 B
Rust
pub fn parse_time_to_seconds(s: &str) -> Option<i64> {
|
|
let parts: Vec<_> = s.trim().split(':').collect();
|
|
match parts.len() {
|
|
2 => {
|
|
// MM:SS
|
|
let minutes: i64 = parts[0].parse().ok()?;
|
|
let seconds: i64 = parts[1].parse().ok()?;
|
|
Some(minutes * 60 + seconds)
|
|
}
|
|
3 => {
|
|
// HH:MM:SS
|
|
let hours: i64 = parts[0].parse().ok()?;
|
|
let minutes: i64 = parts[1].parse().ok()?;
|
|
let seconds: i64 = parts[2].parse().ok()?;
|
|
Some(hours * 3600 + minutes * 60 + seconds)
|
|
}
|
|
_ => None,
|
|
}
|
|
}
|