Compare commits

..

2 Commits

Author SHA1 Message Date
Abdelrahman Said
f23f85e305 Update .gitignore 2024-10-07 08:04:47 +01:00
Abdelrahman Said
751192173f Implement very basic Str8 type 2024-10-07 08:03:56 +01:00
3 changed files with 53 additions and 0 deletions

1
.gitignore vendored
View File

@ -3,6 +3,7 @@
test test
test.* test.*
*.dSYM *.dSYM
.DS_Store
*.pdb *.pdb
*.obj *.obj
compile_commands.json compile_commands.json

View File

@ -0,0 +1,27 @@
#include "str8.h"
#include <string.h>
Str8 wapp_str8_lit(char *str) {
if (!str) {
return (Str8){.capacity = 0, .size = 0, .buf = (u8 *)""};
}
u64 size = strlen(str);
return (Str8){.capacity = size, .size = size, .buf = (u8 *)str};
}
char wapp_str8_get(const Str8 *str, u64 index) {
if (index >= str->size) {
return '\0';
}
return (char)(str->buf[index]);
}
void wapp_str8_set(Str8 *str, u64 index, char c) {
if (index >= str->size) {
return;
}
str->buf[index] = (u8)c;
}

View File

@ -0,0 +1,25 @@
#ifndef STR8_H
#define STR8_H
#include "aliases.h"
#ifdef __cplusplus
BEGIN_C_LINKAGE
#endif // !__cplusplus
typedef struct str8 Str8;
struct str8 {
u64 capacity;
u64 size;
u8 *buf;
};
Str8 wapp_str8_lit(char *str);
char wapp_str8_get(const Str8 *str, u64 index);
void wapp_str8_set(Str8 *str, u64 index, char c);
#ifdef __cplusplus
END_C_LINKAGE
#endif // !__cplusplus
#endif // !STR8_H