diff options
Diffstat (limited to 'src/std/str.h')
-rw-r--r-- | src/std/str.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/std/str.h b/src/std/str.h new file mode 100644 index 0000000..3d3cb41 --- /dev/null +++ b/src/std/str.h @@ -0,0 +1,30 @@ +/** + * @brief + * + */ +#pragma once + +#include "defines.h" + +/** + * @brief Fat pointer representing a UTF8 (TODO) encoded string + * @note when using `printf` you must use %s.*s length, string + */ +typedef struct { + u8 *buf; + size_t len; +} str8; + +/** @brief Compare two strings for exact equality */ +bool str8_equals(str8 a, str8 b); + +/** + * @brief Compare the first `first_nchars` of each string for equality + If either of the strings are shorter than the number only the characters up until the end + of the shorter string will be compared. + * @returns 0 if they are fully equal up until `first_nchars`, i.e they never differed, else it + returns the index at which the first string differed from the second string. +*/ +size_t str8_nequals(str8 a, str8 b, size_t first_nchars); + +bool str8_ends_with(str8 input_str, str8 suffix);
\ No newline at end of file |