src/cx/list.h

changeset 401
e6a8f7fb0c45
parent 398
8d506ed6c1c0
child 404
86ebc3745e62
equal deleted inserted replaced
400:8cd274352419 401:e6a8f7fb0c45
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;
71 71
72 void *cxListRemove(CxList list, size_t index); 72 void *cxListRemove(CxList list, size_t index);
73 73
74 size_t cxListFind(CxList list, void *elem); 74 size_t cxListFind(CxList list, void *elem);
75 75
76 size_t cxListSize(CxList list);
77
78 #endif /* UCX_LIST_H */ 76 #endif /* UCX_LIST_H */

mercurial