From 4d02dcea167d7f45118510ff87217d590456c720 Mon Sep 17 00:00:00 2001 From: "@syxhe" Date: Mon, 24 Mar 2025 17:37:10 -0500 Subject: Rewrite the whole linked list implementation so it's not shit --- src/ll.h | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'src/ll.h') diff --git a/src/ll.h b/src/ll.h index 6e79ccd..6e4ccf9 100644 --- a/src/ll.h +++ b/src/ll.h @@ -1,22 +1,18 @@ #ifndef __VXGG_REWRITE___LL_H___305861098005___ #define __VXGG_REWRITE___LL_H___305861098005___ -#include +typedef int (*dll_freecb)(void*); +typedef struct dlinked dlinkedlist; -typedef int (*dlinkedlist_freecallback)(void*); -typedef struct dlinkedlist dlinkedlist; - -dlinkedlist * dlinkedlist_init(void); +dlinkedlist* dlinkedlist_init(void); int dlinkedlist_free(dlinkedlist **ll); +int dlinkedlist_append(dlinkedlist * const ll, void *data, dll_freecb fcb); +int dlinkedlist_prepend(dlinkedlist * const ll, void *data, dll_freecb fcb); +int dlinkedlist_insert(dlinkedlist * const ll, void *data, dll_freecb fcb, int index); +void* dlinkedlist_get(const dlinkedlist * const ll, int index); +int dlinkedlist_remove(dlinkedlist * const ll, int index); -int dlinkedlist_insert(dlinkedlist * const ll, void *data, dlinkedlist_freecallback dfreecb); -int dlinkedlist_append(dlinkedlist * const ll, void *data, dlinkedlist_freecallback dfreecb); -void *dlinkedlist_get(const dlinkedlist * const ll, size_t index); -void *dlinkedlist_getfirst(const dlinkedlist * const ll); -void *dlinkedlist_getlast(const dlinkedlist * const ll); -int dlinkedlist_remove(dlinkedlist * const ll, size_t index); - -size_t dlinkedlist_size(const dlinkedlist * const ll); -int dlinkedlist_isempty(const dlinkedlist * const ll); +int dlinkedlist_size(const dlinkedlist * const ll); +#define dlinkedlist_isempty(ll) (dlinkedlist_size((ll)) == 0) #endif \ No newline at end of file -- cgit v1.2.3