(v: &str)
| 39 | } |
| 40 | |
| 41 | fn parse_version_tuple(v: &str) -> Result<(u32, u32, u32)> { |
| 42 | let parts: Vec<u32> = v |
| 43 | .split('.') |
| 44 | .map(|p| p.parse::<u32>().context("Invalid version number")) |
| 45 | .collect::<Result<Vec<_>, _>>()?; |
| 46 | if parts.len() != 3 { |
| 47 | bail!( |
| 48 | "Version string must have exactly 3 parts (major.minor.patch), got {}", |
| 49 | parts.len() |
| 50 | ); |
| 51 | } |
| 52 | Ok((parts[0], parts[1], parts[2])) |
| 53 | } |
| 54 | |
| 55 | impl Machine<'_> { |
| 56 | pub fn versioned_options(&self) -> Result<VersionedOptions> { |