| 26 | |
| 27 | |
| 28 | static std::string strip_v_prefix(std::string s) { |
| 29 | if (!s.empty() && (s[0] == 'v' || s[0] == 'V')) s.erase(s.begin()); |
| 30 | return s; |
| 31 | } |
| 32 | |
| 33 | static std::vector<int> split_semver(const std::string& v) { |
| 34 | std::vector<int> out; out.reserve(3); |
no test coverage detected