From 88eb8c969f6abe119994c7ab307b9be58ff076a5 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Mon, 21 Jul 2025 14:26:06 +0200 Subject: feat: JSON object parsing --- string.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'string.c') diff --git a/string.c b/string.c index cc78719..191059e 100644 --- a/string.c +++ b/string.c @@ -1,16 +1,11 @@ #include "string.h" #include +#include #include #include "memory.h" -Str *Str_new(Arena *a, uintptr_t len) { - Str *s = new (a, Str, 1); - s->data = new (a, char, len); - return s; -} - // Returns 1 if strings are equal, 0 otherwise int Str_equals(Str a, Str b) { return (a.len == b.len) && (!a.len || !memcmp(a.data, b.data, a.len)); @@ -26,9 +21,13 @@ uint64_t Str_hash64(Str s) { } Str Str_copy(Arena *a, char *data, uintptr_t len) { - Str str = {0, len}; - str.data = new (a, char, len); + Str str = {.data = NULL, .len = len}; + str.data = new (a, char, len); if (str.len) memcpy(str.data, data, len); return str; } + +void Str_print(Str s) { + printf("%.*s", (int)s.len, s.data); +} -- cgit v1.3