35 typedef int(*CxListComparator)(void *left, void *right); |
35 typedef int(*CxListComparator)(void *left, void *right); |
36 |
36 |
37 typedef struct { |
37 typedef struct { |
38 CxAllocator allocator; |
38 CxAllocator allocator; |
39 CxListComparator cmpfunc; |
39 CxListComparator cmpfunc; |
|
40 size_t itemsize; |
|
41 size_t size; |
|
42 size_t capacity; |
40 void *listdata; |
43 void *listdata; |
41 } cx_list; |
44 } cx_list; |
42 |
45 |
43 typedef int (*cx_list_add)(cx_list *list, void *elem); |
46 typedef int (*cx_list_add)(cx_list *list, void *elem); |
44 |
47 |
46 |
49 |
47 typedef void *(*cx_list_remove)(cx_list *list, size_t index); |
50 typedef void *(*cx_list_remove)(cx_list *list, size_t index); |
48 |
51 |
49 typedef size_t (*cx_list_find)(cx_list *list, void *elem); |
52 typedef size_t (*cx_list_find)(cx_list *list, void *elem); |
50 |
53 |
51 typedef size_t (*cx_list_size)(cx_list *list); |
|
52 |
|
53 typedef struct { |
54 typedef struct { |
54 cx_list_add add; |
55 cx_list_add add; |
55 cx_list_insert insert; |
56 cx_list_insert insert; |
56 cx_list_remove remove; |
57 cx_list_remove remove; |
57 cx_list_find find; |
58 cx_list_find find; |
58 cx_list_size size; |
|
59 } cx_list_class; |
59 } cx_list_class; |
60 |
60 |
61 struct cx_list_s { |
61 struct cx_list_s { |
62 cx_list_class *cl; |
62 cx_list_class *cl; |
63 cx_list data; |
63 cx_list data; |