diff --git a/src/strings/basic_string/basic_string.c b/src/strings/basic_string/basic_string.c new file mode 100644 index 0000000..560b746 --- /dev/null +++ b/src/strings/basic_string/basic_string.c @@ -0,0 +1,10 @@ +#include "basic_string.h" +#include + +void wapp_bstr_print(const BasicString *str) { + if (!str) { + return; + } + + printf("%.*s\n", (i32)str->size, str->buf); +} diff --git a/src/strings/basic_string/basic_string.h b/src/strings/basic_string/basic_string.h new file mode 100644 index 0000000..646744b --- /dev/null +++ b/src/strings/basic_string/basic_string.h @@ -0,0 +1,25 @@ +#ifndef BASIC_STRING_H +#define BASIC_STRING_H + +#include "aliases.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +typedef struct bstr BasicString; +struct bstr { + u64 size; + const char *buf; +}; + +#define wapp_bstr_new(STR) \ + (BasicString) { .size = strlen(STR), .str = STR } +void wapp_bstr_print(const BasicString *str); + +#ifdef __cplusplus +} +#endif // __cplusplus + +#endif // !BASIC_STRING_H