@@ -12,79 +12,79 @@ using namespace OpenShock;
1212// https://semver.org/#backusnaur-form-grammar-for-valid-semver-versions
1313#pragma region Validation Functions
1414
15- constexpr bool _semverIsLetter (char c)
15+ static constexpr bool semverIsLetter (char c)
1616{
1717 return (c >= ' a' && c <= ' z' ) || (c >= ' A' && c <= ' Z' );
1818}
19- constexpr bool _semverIsPositiveDigit (char c)
19+ static constexpr bool semverIsPositiveDigit (char c)
2020{
2121 return c >= ' 1' && c <= ' 9' ;
2222}
23- constexpr bool _semverIsDigit (char c)
23+ static constexpr bool semverIsDigit (char c)
2424{
25- return c == ' 0' || _semverIsPositiveDigit (c);
25+ return c == ' 0' || semverIsPositiveDigit (c);
2626}
27- constexpr bool _semverIsDigits (std::string_view str)
27+ static constexpr bool semverIsDigits (std::string_view str)
2828{
2929 if (str.empty ()) {
3030 return false ;
3131 }
3232
3333 for (auto c : str) {
34- if (!_semverIsDigit (c)) {
34+ if (!semverIsDigit (c)) {
3535 return false ;
3636 }
3737 }
3838
3939 return true ;
4040}
41- constexpr bool _semverIsNonDigit (char c)
41+ static constexpr bool semverIsNonDigit (char c)
4242{
43- return _semverIsLetter (c) || c == ' -' ;
43+ return semverIsLetter (c) || c == ' -' ;
4444}
45- constexpr bool _semverIsIdentifierChararacter (char c)
45+ static constexpr bool semverIsIdentifierChararacter (char c)
4646{
47- return _semverIsDigit (c) || _semverIsNonDigit (c);
47+ return semverIsDigit (c) || semverIsNonDigit (c);
4848}
49- constexpr bool _semverIsIdentifierChararacters (std::string_view str)
49+ static constexpr bool semverIsIdentifierChararacters (std::string_view str)
5050{
5151 if (str.empty ()) {
5252 return false ;
5353 }
5454
5555 for (auto c : str) {
56- if (!_semverIsIdentifierChararacter (c)) {
56+ if (!semverIsIdentifierChararacter (c)) {
5757 return false ;
5858 }
5959 }
6060
6161 return true ;
6262}
63- constexpr bool _semverIsNumericIdentifier (std::string_view str)
63+ static constexpr bool semverIsNumericIdentifier (std::string_view str)
6464{
6565 if (str.empty ()) {
6666 return false ;
6767 }
6868
6969 if (str.length () == 1 ) {
70- return _semverIsDigit (str[0 ]);
70+ return semverIsDigit (str[0 ]);
7171 }
7272
73- return _semverIsPositiveDigit (str[0 ]) && _semverIsDigits (str.substr (1 ));
73+ return semverIsPositiveDigit (str[0 ]) && semverIsDigits (str.substr (1 ));
7474}
75- constexpr bool _semverIsAlphanumericIdentifier (std::string_view str)
75+ static constexpr bool semverIsAlphanumericIdentifier (std::string_view str)
7676{
7777 if (str.empty ()) {
7878 return false ;
7979 }
8080
8181 if (str.length () == 1 ) {
82- return _semverIsNonDigit (str[0 ]);
82+ return semverIsNonDigit (str[0 ]);
8383 }
8484
8585 std::size_t nonDigitPos = std::string_view::npos;
8686 for (std::size_t i = 0 ; i < str.length (); ++i) {
87- if (_semverIsNonDigit (str[i])) {
87+ if (semverIsNonDigit (str[i])) {
8888 nonDigitPos = i;
8989 break ;
9090 }
@@ -97,26 +97,26 @@ constexpr bool _semverIsAlphanumericIdentifier(std::string_view str)
9797 auto after = str.substr (nonDigitPos + 1 );
9898
9999 if (nonDigitPos == 0 ) {
100- return _semverIsIdentifierChararacters (after);
100+ return semverIsIdentifierChararacters (after);
101101 }
102102
103103 auto before = str.substr (0 , nonDigitPos);
104104
105105 if (nonDigitPos == str.length () - 1 ) {
106- return _semverIsIdentifierChararacters (before);
106+ return semverIsIdentifierChararacters (before);
107107 }
108108
109- return _semverIsIdentifierChararacters (before) && _semverIsIdentifierChararacters (after);
109+ return semverIsIdentifierChararacters (before) && semverIsIdentifierChararacters (after);
110110}
111- constexpr bool _semverIsBuildIdentifier (std::string_view str)
111+ static constexpr bool semverIsBuildIdentifier (std::string_view str)
112112{
113- return _semverIsAlphanumericIdentifier (str) || _semverIsDigits (str);
113+ return semverIsAlphanumericIdentifier (str) || semverIsDigits (str);
114114}
115- constexpr bool _semverIsPrereleaseIdentifier (std::string_view str)
115+ static constexpr bool semverIsPrereleaseIdentifier (std::string_view str)
116116{
117- return _semverIsAlphanumericIdentifier (str) || _semverIsNumericIdentifier (str);
117+ return semverIsAlphanumericIdentifier (str) || semverIsNumericIdentifier (str);
118118}
119- constexpr bool _semverIsDotSeperatedBuildIdentifiers (std::string_view str)
119+ static constexpr bool semverIsDotSeperatedBuildIdentifiers (std::string_view str)
120120{
121121 if (str.empty ()) {
122122 return false ;
@@ -125,17 +125,17 @@ constexpr bool _semverIsDotSeperatedBuildIdentifiers(std::string_view str)
125125 auto dotIdx = str.find (' .' );
126126 while (dotIdx != std::string_view::npos) {
127127 auto part = str.substr (0 , dotIdx);
128- if (!_semverIsBuildIdentifier (part)) {
128+ if (!semverIsBuildIdentifier (part)) {
129129 return false ;
130130 }
131131
132132 str = str.substr (dotIdx + 1 );
133133 dotIdx = str.find (' .' );
134134 }
135135
136- return _semverIsBuildIdentifier (str);
136+ return semverIsBuildIdentifier (str);
137137}
138- constexpr bool _semverIsDotSeperatedPreleaseIdentifiers (std::string_view str)
138+ static constexpr bool semverIsDotSeperatedPreleaseIdentifiers (std::string_view str)
139139{
140140 if (str.empty ()) {
141141 return false ;
@@ -144,25 +144,25 @@ constexpr bool _semverIsDotSeperatedPreleaseIdentifiers(std::string_view str)
144144 auto dotIdx = str.find (' .' );
145145 while (dotIdx != std::string_view::npos) {
146146 auto part = str.substr (0 , dotIdx);
147- if (!_semverIsPrereleaseIdentifier (part)) {
147+ if (!semverIsPrereleaseIdentifier (part)) {
148148 return false ;
149149 }
150150
151151 str = str.substr (dotIdx + 1 );
152152 dotIdx = str.find (' .' );
153153 }
154154
155- return _semverIsPrereleaseIdentifier (str);
155+ return semverIsPrereleaseIdentifier (str);
156156}
157157
158158// For readability
159- #define _semverIsPatch _semverIsNumericIdentifier
160- #define _semverIsMinor _semverIsNumericIdentifier
161- #define _semverIsMajor _semverIsNumericIdentifier
162- #define _semverIsPrerelease _semverIsDotSeperatedPreleaseIdentifiers
163- #define _semverIsBuild _semverIsDotSeperatedBuildIdentifiers
159+ #define semverIsPatch semverIsNumericIdentifier
160+ #define semverIsMinor semverIsNumericIdentifier
161+ #define semverIsMajor semverIsNumericIdentifier
162+ #define semverIsPrerelease semverIsDotSeperatedPreleaseIdentifiers
163+ #define semverIsBuild semverIsDotSeperatedBuildIdentifiers
164164
165- constexpr bool _semverIsVersionCore (std::string_view str)
165+ static constexpr bool semverIsVersionCore (std::string_view str)
166166{
167167 if (str.empty ()) {
168168 return false ;
@@ -173,9 +173,9 @@ constexpr bool _semverIsVersionCore(std::string_view str)
173173 return false ;
174174 }
175175
176- return _semverIsMajor (parts[0 ]) && _semverIsMinor (parts[1 ]) && _semverIsPatch (parts[2 ]);
176+ return semverIsMajor (parts[0 ]) && semverIsMinor (parts[1 ]) && semverIsPatch (parts[2 ]);
177177}
178- constexpr bool _semverIsSemver (std::string_view str)
178+ static constexpr bool semverIsSemver (std::string_view str)
179179{
180180 if (str.empty ()) {
181181 return false ;
@@ -185,7 +185,7 @@ constexpr bool _semverIsSemver(std::string_view str)
185185 auto plusPos = str.find (' +' );
186186
187187 if (dashPos == std::string_view::npos && plusPos == std::string_view::npos) {
188- return _semverIsVersionCore (str);
188+ return semverIsVersionCore (str);
189189 }
190190
191191 if (dashPos != std::string_view::npos && plusPos != std::string_view::npos) {
@@ -197,21 +197,21 @@ constexpr bool _semverIsSemver(std::string_view str)
197197 auto prerelease = str.substr (dashPos + 1 , plusPos - dashPos - 1 );
198198 auto build = str.substr (plusPos + 1 );
199199
200- return _semverIsVersionCore (core) && _semverIsPrerelease (prerelease) && _semverIsBuild (build);
200+ return semverIsVersionCore (core) && semverIsPrerelease (prerelease) && semverIsBuild (build);
201201 }
202202
203203 if (dashPos != std::string_view::npos) {
204204 auto core = str.substr (0 , dashPos);
205205 auto prerelease = str.substr (dashPos + 1 );
206206
207- return _semverIsVersionCore (core) && _semverIsPrerelease (prerelease);
207+ return semverIsVersionCore (core) && semverIsPrerelease (prerelease);
208208 }
209209
210210 if (plusPos != std::string_view::npos) {
211211 auto core = str.substr (0 , plusPos);
212212 auto build = str.substr (plusPos + 1 );
213213
214- return _semverIsVersionCore (core) && _semverIsBuild (build);
214+ return semverIsVersionCore (core) && semverIsBuild (build);
215215 }
216216
217217 return false ;
@@ -220,11 +220,11 @@ constexpr bool _semverIsSemver(std::string_view str)
220220
221221bool SemVer::isValid () const
222222{
223- if (!this ->prerelease .empty () && !_semverIsPrereleaseIdentifier (this ->prerelease )) {
223+ if (!this ->prerelease .empty () && !semverIsPrereleaseIdentifier (this ->prerelease )) {
224224 return false ;
225225 }
226226
227- if (!this ->build .empty () && !_semverIsBuildIdentifier (this ->build )) {
227+ if (!this ->build .empty () && !semverIsBuildIdentifier (this ->build )) {
228228 return false ;
229229 }
230230
@@ -360,7 +360,7 @@ bool OpenShock::TryParseSemVer(std::string_view semverStr, SemVer& semver)
360360 semver.build = restStr.substr ((plusIdx - patchStr.length ()) + 1 );
361361 restStr.remove_suffix (semver.build .length () + 1 );
362362
363- if (!semver.build .empty () && !_semverIsBuild (semver.build )) {
363+ if (!semver.build .empty () && !semverIsBuild (semver.build )) {
364364 OS_LOGE (TAG, " Invalid build: %s" , semver.build .c_str ());
365365 return false ;
366366 }
@@ -369,7 +369,7 @@ bool OpenShock::TryParseSemVer(std::string_view semverStr, SemVer& semver)
369369 if (dashIdx != std::string_view::npos) {
370370 semver.prerelease = restStr.substr (1 );
371371
372- if (!semver.prerelease .empty () && !_semverIsPrerelease (semver.prerelease )) {
372+ if (!semver.prerelease .empty () && !semverIsPrerelease (semver.prerelease )) {
373373 OS_LOGE (TAG, " Invalid prerelease: %s" , semver.prerelease .c_str ());
374374 return false ;
375375 }
0 commit comments