Skip to main content

aqc_file_engine_core/
version.rs

1//! Shared version helpers.
2
3/// Parse a dotted version string (`1.85`, `1.85.0`, `v1.85.0`) into a
4/// `(major, minor, patch)` tuple.
5///
6/// Missing parts and non-numeric parts compare as 0.
7#[must_use]
8pub fn parse_version_tuple(value: &str) -> (u64, u64, u64) {
9    let normalized = value.trim_start_matches('v');
10    let mut parts = normalized
11        .split('.')
12        .map(|part| part.parse::<u64>().unwrap_or(0));
13    (
14        parts.next().unwrap_or(0),
15        parts.next().unwrap_or(0),
16        parts.next().unwrap_or(0),
17    )
18}