From 56ebfa3f4b0d7a80090b344b294252d2be152bb0 Mon Sep 17 00:00:00 2001 From: nasr Date: Mon, 2 Mar 2026 22:43:16 +0000 Subject: feature(main): base library impelmentation --- source/base/base_string.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 source/base/base_string.c (limited to 'source/base/base_string.c') diff --git a/source/base/base_string.c b/source/base/base_string.c new file mode 100644 index 0000000..9d09914 --- /dev/null +++ b/source/base/base_string.c @@ -0,0 +1,63 @@ +internal b8 +compare_string(string c1, string c2) +{ + if (c1.size != c2.size) + { + return 0; + } + + for (u64 index = 0; index < c1.size; ++index) + { + if (c1.data[index] != c2.data[index]) + { + return 0; + } + } + + return 1; +} + +internal b8 +compare_u8(u8 *c1, u8 *c2, u64 len) +{ + if (sizeof(c1) != len || sizeof(c2) != len) + { + return 0; + } + + if (sizeof(*c1) != sizeof(*c2)) + { + return 0; + } + + for (u64 word_idx = 0; word_idx <= sizeof(*c1); ++word_idx) + { + if (*c1 != *c2) + { + return 0; + } + + ++c1; + ++c2; + } + + return 1; +} + +internal u64 +to_u64(u8 *buf, umm len) +{ + u64 value = 0; + + for (umm buffer_idx = 0; buffer_idx < len; ++buffer_idx) + { + u8 c = buf[buffer_idx]; + if (c < '0' || c > '9') + { + break; + } + value = value * 10 + (c - '0'); + } + + return value; +} -- cgit v1.3