aboutsummaryrefslogtreecommitdiff
path: root/sv.h
diff options
context:
space:
mode:
Diffstat (limited to 'sv.h')
-rw-r--r--sv.h70
1 files changed, 0 insertions, 70 deletions
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 <https://www.gnu.org/licenses/>.
-
- * 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