diff -r 38ee262e8b94 -r 0fe204d50f54 src/cx/list.h --- a/src/cx/list.h Sun Sep 26 18:01:51 2021 +0200 +++ b/src/cx/list.h Sun Sep 26 18:31:24 2021 +0200 @@ -38,31 +38,28 @@ typedef int(*CxListComparator)(void const *left, void const *right); +typedef struct cx_list_s cx_list_s; + typedef struct { + int (*add)(cx_list_s *list, void *elem); + + int (*insert)(cx_list_s *list, size_t index, void *elem); + + void *(*remove)(cx_list_s *list, size_t index); + + size_t (*find)(cx_list_s *list, void *elem); + + void *(*last)(cx_list_s *list); +} cx_list_class; + +struct cx_list_s { + cx_list_class *cl; CxAllocator allocator; CxListComparator cmpfunc; size_t itemsize; size_t size; size_t capacity; - char listdata[]; -} cx_list; - -typedef struct { - int (*add)(cx_list *list, void *elem); - - int (*insert)(cx_list *list, size_t index, void *elem); - - void *(*remove)(cx_list *list, size_t index); - - size_t (*find)(cx_list *list, void *elem); - - void *(*last)(cx_list *list); -} cx_list_class; - -typedef struct { - cx_list_class *cl; - cx_list data; -} cx_list_s; +}; typedef cx_list_s *CxList;