CHORE: cleaning up files and bug fixing

This commit is contained in:
2026-10-14 11:32:35 -04:00
parent 4d96592a1e
commit 1654b86640
8 changed files with 1041 additions and 277 deletions
+115
View File
@@ -0,0 +1,115 @@
#ifndef CHAR_H
#define CHAR_H
#include <libstr/string.h>
#include <libvec/utils.h>
// Will add DOCS later
typedef struct
{
String* array;
size_t size;
size_t capacity;
size_t max_size;
} vec_string;
__attribute__((overloadable)) size_t
__null_check(const vec_string* ptr, err_t* status);
__attribute__((overloadable)) size_t
__null_check(const char* ptr, err_t* status);
void
vec_string_print_vec(const vec_string* ptr, err_t* err);
vec_string
vec_string_cpy(const char* src, const size_t src_size, err_t* err);
void
vec_string_push_back(vec_string* ptr, const String val, err_t* err);
void
vec_string_pop_back(vec_string* ptr, err_t* err);
void
vec_string_reserve(vec_string* ptr, const size_t capacity, err_t* err);
void
vec_string_shrink_to_fit(vec_string* ptr, err_t* err);
void
vec_string_swap(vec_string* ptr_a, vec_string* ptr_b, err_t* err);
const String*
vec_string_data(const vec_string* ptr, err_t* err);
size_t
vec_string_size(const vec_string* ptr, err_t* err);
size_t
vec_string_capacity(const vec_string* ptr, err_t* err);
size_t
vec_string_max_size(const vec_string* ptr, err_t* err);
void
vec_string_delete(vec_string* ptr, err_t* err);
void
vec_string_clear(vec_string* ptr, err_t* err);
String*
vec_string_at(const vec_string* ptr, const size_t idx, err_t* err);
size_t
vec_string_begin(const vec_string* ptr, err_t* err);
size_t
vec_string_end(const vec_string* ptr, err_t* err);
String
vec_string_front(const vec_string* ptr, err_t* err);
String
vec_string_back(const vec_string* ptr, err_t* err);
size_t
vec_string_empty(const vec_string* ptr, err_t* err);
__attribute__((overloadable)) void
vec_string_erase(vec_string* ptr, const size_t iter, err_t* err);
__attribute__((overloadable)) void
vec_string_erase(vec_string* ptr, const size_t iter_start,
const size_t iter_end, err_t* err);
__attribute__((overloadable)) void
vec_string_resize(vec_string* ptr, const size_t size, err_t* err);
__attribute__((overloadable)) void
vec_string_resize(vec_string* ptr, const size_t size, const String val,
err_t* err);
__attribute__((overloadable)) void
vec_string_assign(vec_string* ptr, const vec_string* iterator,
const size_t iter_start, const size_t iter_end, err_t* err);
__attribute__((overloadable)) void
vec_string_assign(vec_string* ptr, const size_t amount, const String val,
err_t* err);
__attribute__((overloadable)) void
vec_string_insert(vec_string* ptr, const size_t iter, const String val,
err_t* err);
__attribute__((overloadable)) void
vec_string_insert(vec_string* ptr, const size_t iter, const size_t amount,
const String val, err_t* err);
__attribute__((overloadable)) void
vec_string_insert(vec_string* ptr, const vec_string* iterator,
const size_t iter, const size_t iter_start,
const size_t iter_end, err_t* err);
#endif