summaryrefslogtreecommitdiff
path: root/comp/lucas-standen-NEA/code2/stdlib/String/String.h
diff options
context:
space:
mode:
Diffstat (limited to 'comp/lucas-standen-NEA/code2/stdlib/String/String.h')
-rw-r--r--comp/lucas-standen-NEA/code2/stdlib/String/String.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/comp/lucas-standen-NEA/code2/stdlib/String/String.h b/comp/lucas-standen-NEA/code2/stdlib/String/String.h
new file mode 100644
index 0000000..865defe
--- /dev/null
+++ b/comp/lucas-standen-NEA/code2/stdlib/String/String.h
@@ -0,0 +1,27 @@
+#include <stddef.h>
+extern size_t STRINGSPLITCOUNT;
+typedef struct string string;
+typedef struct string {
+ char *_str; // not null terminated string, length encoded
+ size_t _len;
+ void (*free)(string*);
+ void (*appendchar)(string *, char);
+ int (*insert)(string *, string *, size_t);
+ void (*replacechar)(string *, char, char);
+ int (*countchar)(string *, char);
+ int (*cmp)(string *, string*);
+ void (*fromcstring)(string *, char *);
+ char *(*tocstring)(string *);
+ string **(*split)(string *, char);
+} string;
+
+string *String(char *cstring);
+void __stringfree(string *self);
+void __stringappendchar(string *self, char c);
+int __stringinsert(string *self, string *substring, size_t point);
+void __stringreplacechar(string *self, char orig, char new);
+int __stringcountchar(string *self, char c);
+int __stringcmp(string *str1, string *str2);
+void __stringfromcstring(string *self, char *cstring);
+char *__stringtocstring(string *self);
+string **__stringsplit(string *self, char delim);