From ab3edaa58eed4ff73410954ca094531d49eb5844 Mon Sep 17 00:00:00 2001 From: talha Date: Thu, 15 Feb 2024 09:58:42 +0500 Subject: added personal libraries to git tracking --- strings/strings.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 strings/strings.h (limited to 'strings/strings.h') diff --git a/strings/strings.h b/strings/strings.h new file mode 100644 index 0000000..dbaff7a --- /dev/null +++ b/strings/strings.h @@ -0,0 +1,42 @@ +#ifndef AMR_STR +#define AMR_STR + +#include +#include + +#define MemCopy memcpy + +// @todo: the function names have been changed a bit for the interest +// of speed. Some structs and functions share the same names, so +// I need to fix this but also make sure the functions have good names + +enum StrStatus {STR_OK=0, STR_FULL}; + +struct str8 { + u8 *buffer; + u64 size; +}; + +struct str8_node { + str8_node *next; + str8 string; +}; + +struct str8_list { + str8_node *first; + str8_node *last; + u64 count; + u64 capacity; +}; + +struct res_str8 { + str8 string; + u64 bytes_count; + enum StrStatus status; +}; + +struct str8 Str8(u8 *string, u64 size); +u64 CstrSize(const char* cstr); +struct res_str8 Str8InitCstr(struct arena *a, const char* cstr, u64 size); + +#endif -- cgit v1.2.3