fn parse_semver_triple(s: &str) -> Option<(u32, u32, u32)>
Parse MAJOR.MINOR.PATCH (ignoring any -pre.1 / +build suffix after the patch number) into a (u32, u32, u32) tuple suitable for direct tuple comparison.
MAJOR.MINOR.PATCH
-pre.1
+build
(u32, u32, u32)