addtition: Added function declarations
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
typedef struct ArrayList ArrayList;
|
typedef struct ArrayList ArrayList;
|
||||||
|
|
||||||
typedef struct ArrayListSlice ArrayListSlice;
|
typedef struct ArraySlice ArraySlice;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ARRLIST_OK = 0,
|
ARRLIST_OK = 0,
|
||||||
@@ -24,6 +24,7 @@ typedef enum {
|
|||||||
ArrayList *arraylist_init(size_t capacity, size_t elem_size);
|
ArrayList *arraylist_init(size_t capacity, size_t elem_size);
|
||||||
ArrayListErr arraylist_destroy(ArrayList **arr);
|
ArrayListErr arraylist_destroy(ArrayList **arr);
|
||||||
ArrayListErr arraylist_clear(ArrayList *arr);
|
ArrayListErr arraylist_clear(ArrayList *arr);
|
||||||
|
ArrayList *arraylist_copy(ArrayList *arr);
|
||||||
|
|
||||||
size_t arraylist_size(const ArrayList *arr);
|
size_t arraylist_size(const ArrayList *arr);
|
||||||
size_t arraylist_capacity(const ArrayList *arr);
|
size_t arraylist_capacity(const ArrayList *arr);
|
||||||
@@ -44,4 +45,24 @@ ArrayListErr arraylist_set(ArrayList *arr, size_t index, void *data);
|
|||||||
ArrayListErr arraylist_resize(ArrayList *arr, size_t new_capacity);
|
ArrayListErr arraylist_resize(ArrayList *arr, size_t new_capacity);
|
||||||
ArrayListErr arraylist_reserve(ArrayList *arr, size_t size_to_reserve);
|
ArrayListErr arraylist_reserve(ArrayList *arr, size_t size_to_reserve);
|
||||||
|
|
||||||
|
//Slice stuff
|
||||||
|
ArraySlice *arraylist_slice(ArrayList *arr, size_t start, size_t len);
|
||||||
|
ArraySlice *arraylist_slice_unsafe(ArrayList *arr, size_t start, size_t len);
|
||||||
|
ArrayListErr arrayslice_destroy(ArraySlice **slice);
|
||||||
|
|
||||||
|
bool arrayslice_is_valid(ArraySlice *slice);
|
||||||
|
size_t arrayslice_size(ArraySlice *slice);
|
||||||
|
bool arrayslice_empty(ArraySlice *slice);
|
||||||
|
|
||||||
|
// peek and next can be null, get can't, like, why would you use get without
|
||||||
|
// actually getting something?, for validating an index?, use size idiot
|
||||||
|
ArrayListErr *arrayslice_peek(ArraySlice *slice, void *out);
|
||||||
|
ArrayListErr *arrayslice_next(ArraySlice *slice, void *out);
|
||||||
|
ArrayListErr *arrayslice_get(ArraySlice *slice, void *out);
|
||||||
|
|
||||||
|
ArrayListErr *arrayslice_reset(ArraySlice *slice);
|
||||||
|
ArrayListErr *arrayslice_advance(ArraySlice *slice, size_t n);
|
||||||
|
|
||||||
|
ArrayList *arrayslice_to_arraylist(ArraySlice *slice);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ struct ArrayList{
|
|||||||
size_t capacity;
|
size_t capacity;
|
||||||
size_t len;
|
size_t len;
|
||||||
size_t elem_size;
|
size_t elem_size;
|
||||||
|
size_t borrows;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ArrayListSlice {
|
struct ArraySlice {
|
||||||
ArrayList *arr;
|
ArrayList *arr;
|
||||||
size_t start;
|
size_t start;
|
||||||
size_t end;
|
size_t end;
|
||||||
|
|||||||
Reference in New Issue
Block a user