summaryrefslogtreecommitdiff
path: root/str.h
diff options
context:
space:
mode:
authorAnna (navi) Figueiredo Gomes <navi@vlhl.dev>2024-06-17 00:03:18 +0200
committerAnna (navi) Figueiredo Gomes <navi@vlhl.dev>2024-06-17 00:03:18 +0200
commit6543fecd7b45cc0232aa4148d0a7be125f4c49ea (patch)
treea35a4a20f7d7a091169b3927846bcdf317887b28 /str.h
parent79b3a25865a1ee444fa32698670320f87dbc45a7 (diff)
downloadsilly_game-6543fecd7b45cc0232aa4148d0a7be125f4c49ea.tar.xz
*: restructure into subdirectoires and add REUSE
Diffstat (limited to 'str.h')
-rw-r--r--str.h53
1 files changed, 0 insertions, 53 deletions
diff --git a/str.h b/str.h
deleted file mode 100644
index 2dbd697..0000000
--- a/str.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef STR_H
-#define STR_H
-
-#include <stddef.h>
-#include <stdbool.h>
-
-// string library taken from cuddlesOS:
-// https://github.com/cuddlesOS/cuddles/blob/master/stage3/string.c
-
-// arr
-#define len(X) (sizeof X / sizeof *X)
-#define array(T) struct { size_t len; T *data; }
-
-typedef array(char) str;
-#define S(X) ((str) { len(X)-1, X })
-#define NILS ((str) { 0, NULL })
-
-// compares two strings by length and ASCII values. return value:
-// < 0 if s1 < s2
-// = 0 if s1 = s2
-// > 0 if s1 > s2
-int str_cmp(str s1, str s2);
-
-// returns index of first of occurrence in s of any of the chars in tokens
-// returns length of s if not found
-size_t str_find(str s, str tokens);
-
-// this is a splitting function
-// returns the next non-empty substring of *s that is delimited by the tokens in sep
-// the returned string does not contain any of the separators
-// returns an emtpy string when end is reached
-// advances s to after the substring plus first delimiting token
-str str_walk(str *s, str sep);
-
-// advances the string while its first token matches any of the chars in tokens
-// this can be used to consume whitespace, for example
-str str_eat(str s, str tokens);
-
-// advances the string s by x chars, increasing the data pointer and decreasing the length
-// note: this is not bounds checked
-str str_advance(str s, size_t x);
-
-// returns true if s starts with start
-bool str_start(str s, str start);
-
-// construct a str from a \0 terminated string at runtime
-// avoid this for literals: use the S macro instead without a runtime cost
-str str_intro(char *c);
-
-// copy a string to the heap
-str str_clone(str s);
-
-#endif