commit 18dda591c68f570e900a60a37c18575eadebd222
parent 641b9a04eac3b067542843fca0f657b93256fa43
Author: Jake Koroman <jake@jakekoroman.com>
Date: Mon, 23 Feb 2026 14:12:17 -0500
rename jrk_StringView to jrk_String.
Diffstat:
| M | jrk.h | | | 94 | +++++++++++++++++++++++++++++++++++++++---------------------------------------- |
1 file changed, 46 insertions(+), 48 deletions(-)
diff --git a/jrk.h b/jrk.h
@@ -10,8 +10,6 @@
*
* - add real random api. and remove the rand() wrappers.
*
- * - look at at the jrk_sv_chop_delim_loop stuff. there must
- * must be a better way of handling things.
*/
#include <stdbool.h>
@@ -47,16 +45,16 @@ typedef double f64;
#define JRK_TMPSTRINGS_STR_CAPACITY JRK_KILOBYTES(1)
typedef struct {
- u8 *data;
- u64 offset;
- u64 prev_offset;
- u64 capacity;
+ u8 *data;
+ u64 offset;
+ u64 prev_offset;
+ u64 capacity;
} jrk_Arena;
typedef struct {
- char *data;
- u64 size;
-} jrk_StringView;
+ char *data;
+ u64 size;
+} jrk_String;
void *jrk_ecalloc(u64, u64);
void *jrk_erealloc(void*, u64);
@@ -79,21 +77,21 @@ i32 jrk_fd_open_write_append(char*);
bool jrk_fd_size(i32, u64*);
void jrk_fd_close(i32);
-jrk_StringView jrk_sv_from_parts(char*, u64);
-jrk_StringView jrk_sv_trim_right(jrk_StringView);
-jrk_StringView jrk_sv_trim_left(jrk_StringView);
-jrk_StringView jrk_sv_trim(jrk_StringView);
-jrk_StringView jrk_sv_from_cstr(char*);
-jrk_StringView jrk_sv_chop_delim(jrk_StringView*, char delim);
-bool jrk_sv_equals(jrk_StringView*, jrk_StringView*); // takes the lowest size and matches up to that size
-bool jrk_sv_equals_exact(jrk_StringView*, jrk_StringView*); // must be same size to be equals
+jrk_String jrk_string_from_parts(char*, u64);
+jrk_String jrk_string_trim_right(jrk_String);
+jrk_String jrk_string_trim_left(jrk_String);
+jrk_String jrk_string_trim(jrk_String);
+jrk_String jrk_string_from_cstr(char*);
+jrk_String jrk_string_chop_delim(jrk_String*, char delim);
+bool jrk_string_equals(jrk_String*, jrk_String*); // takes the lowest size and matches up to that size
+bool jrk_string_equals_exact(jrk_String*, jrk_String*); // must be same size to be equals
char *jrk_tmpstrings_push(char*);
char *jrk_tmpstrings_pushf(char*, ...);
/* XXX: im not thrilled with this api, the memory can get messy real fast */
-#define jrk_sv_chop_delim_loop(sv, it, delim) \
- for (jrk_StringView it = jrk_sv_chop_delim(sv, delim); it.size != 0; it = jrk_sv_chop_delim(sv, delim))
+#define jrk_string_chop_delim_loop(str, it, delim) \
+ for (jrk_String it = jrk_string_chop_delim(str, delim); it.size != 0; it = jrk_string_chop_delim(str, delim))
#ifndef jrk_die
#define jrk_die(x) \
@@ -275,7 +273,7 @@ typedef jrk_Array_char jrk_StringBuilder;
#define jrk_sb_init_ex(sb, size, allocfn, reallocfn, userarg) jrk_array_char_init_ex((sb), (size), (allocfn), (reallocfn), (userarg))
#define jrk_sb_init_arena(sb, size, arena) jrk_sb_init_ex((sb), (size), jrk_array_alloc_function_arena, jrk_array_realloc_function_arena, (void *)(arena))
#define jrk_sb_deinit(sb) jrk_array_char_deinit((sb))
-#define jrk_sb_to_sv(sb) jrk_sv_from_parts((sb).items, (sb).size)
+#define jrk_sb_to_string(sb) jrk_string_from_parts((sb).items, (sb).size)
bool jrk_sb_appendf(jrk_StringBuilder*, char*, ...);
bool jrk_sb_append_buf_at(jrk_StringBuilder*, char*, u64, u64);
@@ -740,68 +738,68 @@ jrk_fd_open_write_append(char *path)
return result;
}
-jrk_StringView
-jrk_sv_from_parts(char *data, u64 size)
+jrk_String
+jrk_string_from_parts(char *data, u64 size)
{
- jrk_StringView result = {0};
+ jrk_String result = {0};
result.data = data;
result.size = size;
return result;
}
-jrk_StringView
-jrk_sv_from_cstr(char *data)
+jrk_String
+jrk_string_from_cstr(char *data)
{
- jrk_StringView result = {0};
+ jrk_String result = {0};
result.data = data;
result.size = strlen(data);
return result;
}
-jrk_StringView
-jrk_sv_trim_right(jrk_StringView sv)
+jrk_String
+jrk_string_trim_right(jrk_String str)
{
u64 i = 0;
- for (; i < sv.size && isspace(sv.data[sv.size - 1 - i]); ++i);
- return jrk_sv_from_parts(sv.data, sv.size - i);
+ for (; i < str.size && isspace(str.data[str.size - 1 - i]); ++i);
+ return jrk_string_from_parts(str.data, str.size - i);
}
-jrk_StringView
-jrk_sv_trim_left(jrk_StringView sv)
+jrk_String
+jrk_string_trim_left(jrk_String str)
{
u64 i = 0;
- for (; i < sv.size && isspace(sv.data[i]); ++i);
- return jrk_sv_from_parts(sv.data + i, sv.size - i);
+ for (; i < str.size && isspace(str.data[i]); ++i);
+ return jrk_string_from_parts(str.data + i, str.size - i);
}
-jrk_StringView
-jrk_sv_trim(jrk_StringView sv)
+jrk_String
+jrk_string_trim(jrk_String str)
{
- return jrk_sv_trim_right(jrk_sv_trim_left(sv));
+ return jrk_string_trim_right(jrk_string_trim_left(str));
}
-jrk_StringView
-jrk_sv_chop_delim(jrk_StringView *sv, char delim)
+jrk_String
+jrk_string_chop_delim(jrk_String *str, char delim)
{
u64 i = 0;
- while (i < sv->size && sv->data[i] != delim)
+ while (i < str->size && str->data[i] != delim)
++i;
- jrk_StringView result = jrk_sv_from_parts(sv->data, i);
+ jrk_String result = jrk_string_from_parts(str->data, i);
- if (i < sv->size) {
- sv->data += i + 1;
- sv->size -= i + 1;
+ if (i < str->size) {
+ str->data += i + 1;
+ str->size -= i + 1;
} else {
- sv->data += i;
- sv->size -= i;
+ str->data += i;
+ str->size -= i;
}
return result;
}
bool
-jrk_sv_equals(jrk_StringView *a, jrk_StringView *b)
+jrk_string_equals(jrk_String *a, jrk_String *b)
{
for (u64 i = 0; i < JRK_MIN(a->size, b->size); ++i)
if (a->data[i] != b->data[i]) return false;
@@ -810,7 +808,7 @@ jrk_sv_equals(jrk_StringView *a, jrk_StringView *b)
}
bool
-jrk_sv_equals_exact(jrk_StringView *a, jrk_StringView *b)
+jrk_string_equals_exact(jrk_String *a, jrk_String *b)
{
if (a->size != b->size) return false;