aboutsummaryrefslogtreecommitdiff
path: root/String.h
blob: 40d0e55286620edc8dd8ef5c184a294367db2354 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef _STRING
#define _STRING

#include "MemoryManager.h"
#include <stdarg.h>

typedef char* String;

/* Create */

String S_new(MemoryManager *mm, const char* str);
String S_newlen(MemoryManager *mm, usize length);
String S_dup(MemoryManager *mm, String s);

String S_vconcat(MemoryManager *mm, va_list args);
String S_concat(MemoryManager *mm, ...);
String S_vprintf(MemoryManager *mm, const char* fmt, va_list args);
String S_printf(MemoryManager *mm, const char* fmt, ...);

/* Free */

Result S_free(String *s);

/* Modify */

Result S_append(String *s, const char* str);
Result S_prepend(String *s, const char* str);

/* Get */

usize S_length(String s);
usize S_find(String s, char c);

#endif /* _STRING */