summaryrefslogtreecommitdiff
path: root/src/std/str.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/std/str.c')
-rw-r--r--src/std/str.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/std/str.c b/src/std/str.c
index 7dafef1..07a8e73 100644
--- a/src/std/str.c
+++ b/src/std/str.c
@@ -1,10 +1,12 @@
#include "str.h"
-#include <string.h>
#include <assert.h>
+#include <string.h>
#include "mem.h"
str8 str8_create(u8* buf, size_t len) { return (str8){ .buf = buf, .len = len }; }
+str8 str8_cstr_view(char* string) { return str8_create((u8*)string, strlen(string)); }
+
bool str8_equals(str8 a, str8 b) {
if (a.len != b.len) {
return false;
@@ -48,25 +50,15 @@ str8 str8_substr(str8 s, u64 min, u64 max) {
assert(min < s.len);
assert(max >= 0);
assert(max <= s.len);
- uint8_t * start = s.buf + (ptrdiff_t)min;
+ uint8_t* start = s.buf + (ptrdiff_t)min;
size_t new_len = max - min;
- return (str8) {.buf = start, .len = new_len };
+ return (str8){ .buf = start, .len = new_len };
}
-str8 str8_take(str8 s, u64 first_n) {
- return str8_substr(s, 0, first_n);
-}
+str8 str8_take(str8 s, u64 first_n) { return str8_substr(s, 0, first_n); }
-str8 str8_drop(str8 s, u64 last_n) {
- return str8_substr(s, s.len - last_n, s.len);
-}
-
-str8 str8_skip(str8 s, u64 n) {
- return str8_substr(s, n, s.len);
-}
-
-str8 str8_chop(str8 s, u64 n) {
- return str8_substr(s, 0, s.len - n);
-}
+str8 str8_drop(str8 s, u64 last_n) { return str8_substr(s, s.len - last_n, s.len); }
+str8 str8_skip(str8 s, u64 n) { return str8_substr(s, n, s.len); }
+str8 str8_chop(str8 s, u64 n) { return str8_substr(s, 0, s.len - n); }