From 7e73843ac5873833c707687cd0ada0a3034e600c Mon Sep 17 00:00:00 2001 From: pryazha Date: Thu, 11 Sep 2025 19:25:30 +0500 Subject: add new files --- prbs.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 prbs.h (limited to 'prbs.h') diff --git a/prbs.h b/prbs.h new file mode 100644 index 0000000..4547d7c --- /dev/null +++ b/prbs.h @@ -0,0 +1,45 @@ +#ifndef prbs_h +#define prbs_h + +#include "types.h" +#include "arena.h" +#include + +i32 cstrings_equal(const char *s1, const char *s2); + +struct string { + u8 *ptr; + u64 len; +}; + +struct string_node { + struct string str; + struct string_node *next; + struct string_node *prev; +}; + +struct string_list { + i32 cnt; + u64 len; + struct string_node *first; + struct string_node *last; +}; + +#define string_from_cliteral(str) (sturct string){(u8 *)(str), sizeof(str) - 1} +#define expand_string(str) (i32)((str).len), ((str).ptr) + +char *string_to_cstring(struct arena *arena, struct string str); +i32 strings_equal(struct string str1, struct string str2); +u8 *find_char(struct string str, i32 c); +u8 *find_last_char(struct string str, i32 c); +struct string string_from_range(u8 *start, u8 *end); +struct string get_dirname(struct string str); +struct string push_fstringv(struct arena *arena, const char *format, va_list args); +struct string push_fstring(struct arena *arena, const char *format, ...); +void print_string(struct string str); +void push_string_to_list(struct arena *arena, struct string_list *list, i32 front, struct string str); +void push_fstring_to_list(struct arena *arena, struct string_list *list, i32 front, const char *format, ...); +struct string join_string_list(struct arena *arena, struct string_list *list); +void print_string_list(struct string_list *list); + +#endif -- cgit v1.2.3-70-g09d2