From a854e4cfa450590753171fbbe4dde8da4f504abd Mon Sep 17 00:00:00 2001 From: spl3g Date: Tue, 11 Mar 2025 22:37:43 +0300 Subject: Move everything to the lib folder --- const_strings.h | 108 -------------------------------------------------------- 1 file changed, 108 deletions(-) delete mode 100644 const_strings.h (limited to 'const_strings.h') diff --git a/const_strings.h b/const_strings.h deleted file mode 100644 index 3f13b95..0000000 --- a/const_strings.h +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef CONST_STRINGS_H_ -#define CONST_STRINGS_H_ - -#include -#include -#include - -typedef struct { - char* data; - int len; -} const_string; - - -const_string cs_from_parts(char* data, int len); -const_string cs_from_cstr(char* cstr); -const_string cs_slice(const_string src, int from, int to); -const_string cs_chop_delim(const_string *src, char delim); -int cs_find_delim(const_string str, char delim); -void cs_print(char *format, const_string str); - -#define CS(cstr) cs_from_parts(cstr, sizeof(cstr) - 1) -#define CS_STATIC(cstr) {.data = cstr, .len = sizeof(cstr) - 1} - -#endif // STRINGS_H_ - - -#ifdef CONST_STRINGS_IMPLEMENTATION - -const_string cs_from_parts(char* data, int len) { - const_string str; - str.data = data; - str.len = len; - - return str; -} - -const_string cs_from_cstr(char* cstr) { - return cs_from_parts(cstr, strlen(cstr)); -} - -char* cs_to_cstr(const_string str) { - str.data[str.len] = '\0'; - return str.data; -} - -const_string cs_slice(const_string src, int from, int to) { - if (from > src.len) { - return src; - } - - int new_from; - if (from <= 0) { - new_from = 1; - } - new_from -= 1; - - int new_len; - if (to > src.len) { - new_len = src.len; - } else { - new_len = to; - } - - return cs_from_parts(src.data + new_from, new_len); -} - -const_string cs_chop_delim(const_string *str, char delim) { - int n; - for (n = 0; n < str->len && str->data[n] != delim; n++) {} - - const_string result = cs_from_parts(str->data, n); - - if (n < str->len) { - str->len -= n + 1; - str->data += n + 1; - } else { - str->len -= n; - str->data += n; - } - - return result; -} - -int cs_find_delim(const_string str, char delim) { - int n; - for (n = 0; n < str.len && str.data[n] != delim; n++) {} - - if (n < str.len) { - return n; - } - return -1; -} - -bool cs_eq(const_string str1, const_string str2) { - if (str1.len != str2.len) { - return false; - } - return memcmp(str1.data, str2.data, str1.len) == 0; -} - -void cs_print(char *format, const_string str) { - char buf[str.len + 1]; - memcpy(buf, str.data, str.len); - buf[str.len] = '\0'; - printf(format, buf); -} - -#endif // STRINGS_IMPLEMENTATION -- cgit v1.2.3