sv: rearrange sv_substr and sv_truncate

This commit is contained in:
2026-02-11 07:47:49 +00:00
committed by oreodave
parent 9f3bb57972
commit 3e7734037c
2 changed files with 9 additions and 8 deletions

View File

@@ -29,8 +29,8 @@ typedef struct
sv_t sv_copy(sv_t);
sv_t sv_chop_left(sv_t, u64 size);
sv_t sv_chop_right(sv_t, u64 size);
sv_t sv_substr(sv_t, u64 position, u64 size);
sv_t sv_truncate(sv_t, u64 newsize);
sv_t sv_substr(sv_t, u64 position, u64 size);
sv_t sv_till(sv_t, const char *reject);
sv_t sv_while(sv_t, const char *accept);

View File

@@ -36,18 +36,19 @@ sv_t sv_chop_right(sv_t sv, u64 size)
return SV(sv.data, sv.size - size);
}
sv_t sv_substr(sv_t sv, u64 position, u64 size)
{
return sv_truncate(sv_chop_left(sv, position), size);
}
sv_t sv_truncate(sv_t sv, u64 newsize)
{
if (newsize >= sv.size)
return sv;
if (newsize > sv.size)
return SV(NULL, 0);
return SV(sv.data, newsize);
}
sv_t sv_substr(sv_t sv, u64 position, u64 size)
{
sv_t result = sv_truncate(sv_chop_left(sv, position), size);
return result;
}
sv_t sv_till(sv_t sv, const char *reject)
{
if (sv.size == 0 || !sv.data)