aboutsummaryrefslogtreecommitdiffstats
path: root/src/bootstrap/string_view.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bootstrap/string_view.c')
-rw-r--r--src/bootstrap/string_view.c43
1 files changed, 0 insertions, 43 deletions
diff --git a/src/bootstrap/string_view.c b/src/bootstrap/string_view.c
deleted file mode 100644
index e958a46..0000000
--- a/src/bootstrap/string_view.c
+++ /dev/null
@@ -1,43 +0,0 @@
1typedef struct StringView {
2 char *start;
3 size_t n;
4} StringView;
5
6void
7sv_write(StringView sv) {
8 for (size_t i = 0; i < sv.n; i++) {
9 putchar(sv.start[i]);
10 }
11}
12
13bool
14sv_equal(StringView a, StringView b) {
15 if (a.n == b.n) {
16 for (size_t i = 0; i < a.n; i++) {
17 if (a.start[i] != b.start[i]) {
18 return false;
19 }
20 }
21 return true;
22 }
23 return false;
24}
25
26char
27sv_next(StringView *sv) {
28 if (sv->n == 0) {
29 return '\0';
30 }
31 char ret = sv->start[0];
32 sv->start++;
33 sv->n--;
34 return ret;
35}
36
37char
38sv_peek(const StringView *sv) {
39 if (sv->n == 0) {
40 return '\0';
41 }
42 return sv->start[0];
43}