StrIterRemainingLength
Description
Characters remaining to read in the iteration direction. Alias- reframe of IterRemainingLength in string vocabulary. See IterRemainingLength for the full contract.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Io.c:836:
LOG_FATAL("buf_read_fmt: unterminated {{ in fmt");
}
u32 spec_len = (u32)(StrIterRemainingLength(&spec_start_fsi) - StrIterRemainingLength(&fsi));
FmtInfo fmt_info = {0};- In
Io.c:1019:
LOG_FATAL("buf_*_fmt: unterminated {{ in fmt");
}
u32 spec_len = (u32)(StrIterRemainingLength(&spec_start_fsi) - StrIterRemainingLength(&fsi));
FmtInfo fmt_info = {0};- In
Io.c:2528:
}
if (!StrIterRemainingLength(&si)) {
LOG_ERROR("Failed to parse f64: empty input");
DefaultAllocatorDeinit(&scratch);- In
Io.c:2641:
}
if (!StrIterRemainingLength(&si)) {
LOG_ERROR("Failed to parse u8: empty input");
DefaultAllocatorDeinit(&scratch);- In
Io.c:2760:
} \
\
if (!StrIterRemainingLength(&si)) { \
LOG_ERROR("Failed to parse " #NAME ": empty input"); \
DefaultAllocatorDeinit(&scratch); \
- In
Io.c:3058:
}
if (!StrIterRemainingLength(&si)) {
LOG_ERROR("Empty input string");
return StrIterDataAt(&si, StrIterIndex(&si));- In
Io.c:3194:
}
if (!StrIterRemainingLength(&si)) {
LOG_ERROR("Failed to parse Int: empty input");
return StrIterDataAt(&si, StrIterIndex(&si));- In
Io.c:3291:
}
if (!StrIterRemainingLength(&si)) {
LOG_ERROR("Failed to parse Float: empty input");
StrDeinit(&temp);- In
Io.c:3347:
}
if (!StrIterRemainingLength(&si)) {
LOG_ERROR("Failed to parse f32: empty input");
DefaultAllocatorDeinit(&scratch);- In
ArgParse.c:93:
}
// No digits consumed (cursor at entry) or trailing junk after digits.
if (StrIterRemainingLength(&si) == StrIterLength(&si) || StrIterRemainingLength(&si) != 0)
return false;
if (v > hi)- In
ProcMaps.c:107:
// perms: 4 chars
if (StrIterRemainingLength(si) < 4)
return false;
u32 perms = 0;- In
ProcMaps.c:218:
// so path slices that alias the buffer are usable as `Zstr`.
StrIter si = StrIterFromStr(out->raw);
while (StrIterRemainingLength(&si)) {
ProcMapEntry e = {0};
if (!parse_one_line(&si, &e)) {- In
ProcMaps.c:226:
StrIterMustNext(&si);
}
if (StrIterRemainingLength(&si)) {
StrIterMustNext(&si);
}- In
Dns.c:149:
StrIterMustNext(si);
}
if (StrIterRemainingLength(si) > 0) {
StrIterMustNext(si);
}- In
Dns.c:163:
StrIter si = StrIterFromStr(buf);
char c;
while (StrIterRemainingLength(&si)) {
skip_hspace_iter(&si);- In
Dns.c:261:
StrIter si = StrIterFromStr(buf);
char c;
while (StrIterRemainingLength(&si)) {
skip_hspace_iter(&si);- In
Dns.c:273:
// `kw_len` for the required separator -- both bounds-checked.
char sep;
if (StrIterRemainingLength(&si) > kw_len &&
MemCompare(StrIterDataAt(&si, StrIterIndex(&si)), NS_KEYWORD, kw_len) == 0 &&
StrIterPeekAt(&si, (i64)kw_len, &sep) && (sep == ' ' || sep == '\t')) {- In
JSON.c:13:
static StrIter JSkipObject(StrIter si) {
if (!StrIterRemainingLength(&si)) {
return si;
}- In
JSON.c:109:
static StrIter JSkipArray(StrIter si) {
if (!StrIterRemainingLength(&si)) {
return si;
}- In
JSON.c:182:
StrIter JReadString(StrIter si, Str *str) {
if (!StrIterRemainingLength(&si)) {
return si;
}- In
JSON.c:268:
// JSON like `"\u"` / `"\u12"` would DoS the
// process otherwise.
if (StrIterRemainingLength(&si) < 5) {
LOG_ERROR("Truncated \\uXXXX escape in JSON string.");
StrClear(str);- In
JSON.c:300:
StrIter JReadNumber(StrIter si, Number *num) {
if (!StrIterRemainingLength(&si)) {
return si;
}- In
JSON.c:445:
StrIter JReadInteger(StrIter si, i64 *val) {
if (!StrIterRemainingLength(&si)) {
return si;
}- In
JSON.c:473:
StrIter JReadFloat(StrIter si, f64 *val) {
if (!StrIterRemainingLength(&si)) {
return si;
}- In
JSON.c:500:
StrIter JReadBool(StrIter si, bool *b) {
if (!StrIterRemainingLength(&si)) {
return si;
}- In
JSON.c:512:
char c;
if (StrIterRemainingLength(&si) >= 4) {
if (StrIterPeek(&si, &c) && c == 't') {
Zstr pos = StrIterPos(&si);- In
JSON.c:524:
}
if (StrIterRemainingLength(&si) >= 5) {
if (StrIterPeek(&si, &c) && c == 'f') {
Zstr pos = StrIterPos(&si);- In
JSON.c:549:
StrIter JReadNull(StrIter si, bool *is_null) {
if (!StrIterRemainingLength(&si)) {
return si;
}- In
JSON.c:562:
*is_null = false;
char c;
if (StrIterRemainingLength(&si) >= 4) {
if (StrIterPeek(&si, &c) && c == 'n') {
Zstr pos = StrIterPos(&si);- In
JSON.c:585:
StrIter JSkipValue(StrIter si) {
if (!StrIterRemainingLength(&si)) {
return si;
}- In
Dns.c:39:
// Trailing dot at the end is valid (means root); leading or
// middle empty labels are not.
if (StrIterRemainingLength(&si) == 0) {
break;
} #define JR_OBJ(si, reader) \
do { \
if (!StrIterRemainingLength(&si)) { \
break; \
} \ bool success = true;
if (!StrIterRemainingLength(&si)) {
WriteFmt("[DEBUG] Remaining length check failed: expected > 0, got {}\n", StrIterRemainingLength(&si));
success = false;
if (!StrIterRemainingLength(&si)) {
WriteFmt("[DEBUG] Remaining length check failed: expected > 0, got {}\n", StrIterRemainingLength(&si));
success = false;
}- In
JSON.h:439:
#define JR_ARR(si, reader) \
do { \
if (!StrIterRemainingLength(&si)) { \
break; \
} \- In
JSON.h:535:
#define JR_OBJ(si, reader) \
do { \
if (!StrIterRemainingLength(&si)) { \
break; \
} \
Last updated on