in rd-util/src/lib.rs [108:134]
fn split_git_version(ver: &str) -> (&str, &str) {
let comps = ver.split('-').collect::<Vec<&str>>();
let mut git_len = 0;
let mut discard_len = 0;
let mut idx = comps.len() - 1;
if idx > 0 && comps[idx] == "dirty" {
git_len += comps[idx].len() + 1;
idx -= 1;
}
if idx > 0 && &comps[idx][0..1] == "g" && u64::from_str_radix(&comps[idx][1..], 16).is_ok() {
git_len += comps[idx].len() + 1;
idx -= 1;
if idx > 0 && comps[idx].parse::<u32>().is_ok() {
discard_len = comps[idx].len() + 1;
}
}
if git_len == 0 {
(ver, "")
} else {
(
&ver[0..ver.len() - discard_len - git_len],
&ver[ver.len() - git_len + 1..],
)
}
}