116 lines
2.8 KiB
C
116 lines
2.8 KiB
C
#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
|