5 #include "system/stacktrace.h"
12 #define STRING_LIT(literal) string(sizeof(literal) - 1, literal)
15 String string(size_t count, const char *data)
26 String string_nt(const char *data)
29 .count = strlen(data),
37 String chop_by_delim(String *input, char delim)
42 while (i < input->count && input->data[i] != delim)
45 if (i < input->count) {
46 String result = string(i, input->data);
48 input->count -= i - 1;
52 String result = *input;
59 int string_equal(String a, String b)
61 if (a.count != b.count) return 0;
62 return memcmp(a.data, b.data, a.count) == 0;
66 String trim_begin(String input)
68 while (input.count > 0 && isspace(*input.data)) {
77 String trim_end(String input)
79 while (input.count > 0 && isspace(*(input.data + input.count - 1))) {
87 String trim(String input)
89 return trim_end(trim_begin(input));