(v: &str)
| 17 | /// version strings. |
| 18 | pub fn needs_upgrade(current: &str, required: &str) -> bool { |
| 19 | fn parse_version(v: &str) -> Option<(u32, u32, u32)> { |
| 20 | let mut parts = v.trim().splitn(4, '.'); |
| 21 | let major = parts.next()?.parse::<u32>().ok()?; |
| 22 | let minor = parts.next().unwrap_or("0").parse::<u32>().ok()?; |
| 23 | let patch = parts.next().unwrap_or("0").parse::<u32>().ok()?; |
| 24 | Some((major, minor, patch)) |
| 25 | } |
| 26 | |
| 27 | match (parse_version(current), parse_version(required)) { |
| 28 | (Some(cur), Some(req)) => cur < req, |