12#define print_string ".*s"
14#define print_string_arg(string) (int)(string)->len, (cstr *)(string)->base
39#ifdef USE_NULLABLE_TYPES
40typedef string_t string_nullable_t;
260b32 stringcmp(
const string *first,
const string *second);
363#define HTILS_STR(base) string_from_cstr(arena, base)
uint64_t u64
Definition basictypes.h:18
u32 b32
Definition basictypes.h:39
int64_t i64
Definition basictypes.h:30
uint8_t u8
Definition basictypes.h:9
char cstr
Definition basictypes.h:55
void string_trim(string *str)
Trims whitespace from the start and end of a string.
Definition string.c:243
u64 string_concatf(arena_t *arena, string *dest, const cstr *fmt,...)
Concatenates a formatted cstr to a string.
Definition string.c:142
u64 string_concatb(arena_t *arena, string *dest, const string *src, const u64 len)
Concatenate len bytes of src to dest.
Definition string.c:120
string * string_from_cstr(arena_t *arena, const cstr *base)
Create a string from a C-string.
Definition string.c:39
u64 string_concat(arena_t *arena, string *dest, const string *src)
Concatenates two strings.
Definition string.c:101
void string_trim_left(string *str)
Trims whitespace from the start of a string.
Definition string.c:252
b32 stringcmpb(const string *first, const string *second, const u64 len)
Compares len bytes of each string.
Definition string.c:192
i64 string_findc(string *haystack, u8 needle)
Finds the first occurance of a character in a string.
Definition string.c:285
string_slice string_slice_from_cstr(u8 *base, u64 len)
Create a string_slice from a C-string.
Definition string.c:55
string string_slice
A slice of a string.
Definition string.h:37
i64 string_find_sstr(string *haystack, string *needle)
Finds the first occurance of a string in a string.
Definition string.c:296
string * string_dup(arena_t *arena, const string *from)
Duplicates from to a new string.
Definition string.c:86
u64 string_split(string *src, u8 delim, string ***darray, arena_t *arena)
Splits a string by a delimiter.
Definition string.c:209
string_slice string_slice_from_string(string *str)
Create a string_slice from a string.
Definition string.c:62
struct _string string
a string.
b32 stringcmp(const string *first, const string *second)
Compare two string.
Definition string.c:178
string * string_new(arena_t *arena, const u64 len)
Creates a new string.
Definition string.c:27
cstr * string_to_cstr(const string *str)
Convert a string to a cstr.
Definition string.c:72
void string_trim_right(string *str)
Trims whitespace from the end of a string.
Definition string.c:267
a string.
Definition string.h:26
u8 * base
Definition string.h:27
u64 len
Definition string.h:28
An arena.
Definition arena.h:33