Files
libvec/include/libvec/int.h
T
DarthMooMancer 813390b6ac API: Cutting my losses and having singular types and files for the 4
types { char, int, float, string } and can come back later to make it
one type to call.

GITIGNORE: Added tests and Makefile to cleanup fuzzyfinder but dont need
them pushed either as I have enough testing done.
2026-10-14 09:48:58 -04:00

118 lines
2.9 KiB
C

#ifndef INT_H
#define INT_H
#include <libvec/utils.h>
// Will add DOCS later
typedef struct
{
int* _internal_arr;
size_t _internal_size;
size_t _internal_capacity;
size_t _internal_max_size;
} _VecIntInternal;
__attribute__((overloadable)) size_t
__null_check(const _VecIntInternal* ptr, err_t* status);
__attribute__((overloadable)) size_t
__null_check(const int* ptr, err_t* status);
size_t
__origin_override(err_t* status, char* str);
void
_vec_int_print_vec(const _VecIntInternal* ptr, err_t* err);
_VecIntInternal
_vec_int_cpy(const int* src, const size_t src_size, err_t* err);
void
_vec_int_push_back(_VecIntInternal* ptr, const int val, err_t* err);
void
_vec_int_pop_back(_VecIntInternal* ptr, err_t* err);
void
_vec_int_reserve(_VecIntInternal* ptr, const size_t capacity, err_t* err);
void
_vec_int_shrink_to_fit(_VecIntInternal* ptr, err_t* err);
void
_vec_int_swap(_VecIntInternal* ptr_a, _VecIntInternal* ptr_b, err_t* err);
const int*
_vec_int_data(const _VecIntInternal* ptr, err_t* err);
size_t
_vec_int_size(const _VecIntInternal* ptr, err_t* err);
size_t
_vec_int_capacity(const _VecIntInternal* ptr, err_t* err);
size_t
_vec_int_max_size(const _VecIntInternal* ptr, err_t* err);
void
_vec_int_delete(_VecIntInternal* ptr, err_t* err);
void
_vec_int_clear(_VecIntInternal* ptr, err_t* err);
int*
_vec_int_at(const _VecIntInternal* ptr, const size_t idx, err_t* err);
size_t
_vec_int_begin(const _VecIntInternal* ptr, err_t* err);
size_t
_vec_int_end(const _VecIntInternal* ptr, err_t* err);
int
_vec_int_front(const _VecIntInternal* ptr, err_t* err);
int
_vec_int_back(const _VecIntInternal* ptr, err_t* err);
size_t
_vec_int_empty(const _VecIntInternal* ptr, err_t* err);
__attribute__((overloadable)) void
_vec_int_erase(_VecIntInternal* ptr, const size_t iter, err_t* err);
__attribute__((overloadable)) void
_vec_int_erase(_VecIntInternal* ptr, const size_t iter_start,
const size_t iter_end, err_t* err);
__attribute__((overloadable)) void
_vec_int_resize(_VecIntInternal* ptr, const size_t size, err_t* err);
__attribute__((overloadable)) void
_vec_int_resize(_VecIntInternal* ptr, const size_t size, const int val,
err_t* err);
__attribute__((overloadable)) void
_vec_int_assign(_VecIntInternal* ptr, const _VecIntInternal* iterator,
const size_t iter_start, const size_t iter_end, err_t* err);
__attribute__((overloadable)) void
_vec_int_assign(_VecIntInternal* ptr, const size_t amount, const int val,
err_t* err);
__attribute__((overloadable)) void
_vec_int_insert(_VecIntInternal* ptr, const size_t iter, const int val,
err_t* err);
__attribute__((overloadable)) void
_vec_int_insert(_VecIntInternal* ptr, const size_t iter, const size_t amount,
const int val, err_t* err);
__attribute__((overloadable)) void
_vec_int_insert(_VecIntInternal* ptr, const _VecIntInternal* iterator,
const size_t iter, const size_t iter_start,
const size_t iter_end, err_t* err);
#endif