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.
118 lines
2.9 KiB
C
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
|