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}