pub fn validUnderscores(s: []const u8, comptime base: u8) bool s: []const u8base: u8278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297pub fn validUnderscores(s: []const u8, comptime base: u8) bool {
var i: usize = 0;
while (i < s.len) : (i += 1) {
if (s[i] == '_') {
// underscore at start of end
if (i == 0 or i + 1 == s.len) {
return false;
}
// consecutive underscores
if (!common.isDigit(s[i - 1], base) or !common.isDigit(s[i + 1], base)) {
return false;
}
// next is guaranteed a digit, skip an extra
i += 1;
}
}
return true;
}