From 12de1e8db90bccd5a0eefd21075f07c7b7e3dfaa Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Wed, 14 May 2025 21:12:58 +0100 Subject: Refactor for cleanliness Move files into separate folders for ease of reading, include source directory so we can use angle bracket includes, adjust build system to make directories for objects --- sv.h | 70 -------------------------------------------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 sv.h (limited to 'sv.h') diff --git a/sv.h b/sv.h deleted file mode 100644 index 0fce33d..0000000 --- a/sv.h +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright (C) 2025 Aryadev Chavali - - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License Version 2 for - * details. - - * You may distribute and modify this code under the terms of the GNU General - * Public License Version 2, which you should have received a copy of along with - * this program. If not, please go to . - - * Created: 2025-04-14 - * Description: String Views - */ - -#ifndef SV_H -#define SV_H - -#include "./memory.h" - -typedef struct SV -{ - u64 size; - char *data; -} sv_t; - -#define SV(DATA, SIZE) ((const sv_t){.size = (SIZE), .data = (DATA)}) -#define SV_FMT(SV) (int)(SV).size, (SV).data -#define PR_SV "%.*s" - -sv_t sv_make(arena_t *allocator, const char *data, u64 size); -sv_t sv_copy(arena_t *allocator, sv_t sv); -sv_t sv_append(arena_t *allocator, sv_t sv, const char *data, u64 size); -sv_t sv_prepend(arena_t *allocator, sv_t sv, const char *data, u64 size); - -/** - * @brief Concatenate two string views, returning that concatenation. - - * Allocates memory. - */ -sv_t sv_concat(arena_t *allocator, sv_t a, sv_t b); - -/** - * @brief Allocates a string view with the given `printf` format. - */ -sv_t sv_fmt(arena_t *allocator, char *fmt, ...); - -/** - * @brief Constructs a new string view at a different offset. Does not allocate - * new memory. - */ -sv_t sv_substr(sv_t sv, u64 index, u64 size); -/** - * @brief Return a string view INDEX characters ahead (i.e. cut the string from - * the left). - */ -sv_t sv_cut(sv_t sv, u64 index); -/** - * @brief Return a string view with SIZE (i.e. chopping the string from the - * right) - */ -sv_t sv_chop(sv_t sv, u64 size); - -i64 sv_find_substr(const sv_t sv, const sv_t substr); -i64 sv_find_subcstr(const sv_t sv, const char *substr, u64 size); -i64 sv_find_any(const sv_t sv, const char *bag); -u64 sv_while(const sv_t sv, bool (*pred)(char)); -u64 sv_till(const sv_t sv, bool (*pred)(char)); - -#endif -- cgit v1.2.3-13-gbd6f