aboutsummaryrefslogtreecommitdiff
path: root/String.h
blob: 2a9ef87c53167c06144f4bf33a4286ccda9db448 (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
35
#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);
String S_substr(MemoryManager *mm, String s, usize start, usize length);

#endif /* _STRING */