in include/yyjson/yyjson.c [1890:1910]
static_inline bool ptr_token_to_idx(const char *cur, usize len, usize *idx) {
const char *end = cur + len;
usize num = 0, add;
if (unlikely(len == 0 || len > USIZE_SAFE_DIG)) return false;
if (*cur == '0') {
if (unlikely(len > 1)) return false;
*idx = 0;
return true;
}
if (*cur == '-') {
if (unlikely(len > 1)) return false;
*idx = USIZE_MAX;
return true;
}
for (; cur < end && (add = (usize)((u8)*cur - (u8)'0')) <= 9; cur++) {
num = num * 10 + add;
}
if (unlikely(num == 0 || cur < end)) return false;
*idx = num;
return true;
}