ucx/dlist.h

changeset 67
27e67e725d35
parent 36
a9d656e4f7ce
child 87
bd444539cced
equal deleted inserted replaced
66:fcfe8c5e9fe1 67:27e67e725d35
13 #endif 13 #endif
14 14
15 typedef struct UcxDlist UcxDlist; 15 typedef struct UcxDlist UcxDlist;
16 struct UcxDlist { 16 struct UcxDlist {
17 void *data; 17 void *data;
18 UcxDlist *next; 18 UcxDlist *restrict next;
19 UcxDlist *prev; 19 UcxDlist *restrict prev;
20 }; 20 };
21 21
22 UcxDlist *ucx_dlist_clone(UcxDlist *l, copy_func fnc, void* data); 22 UcxDlist *restrict ucx_dlist_clone(UcxDlist *restrict l,
23 int ucx_dlist_equals(UcxDlist *l1, UcxDlist *l2, cmp_func fnc, void* data); 23 copy_func fnc, void* data);
24 int ucx_dlist_equals(const UcxDlist *l1, const UcxDlist *l2,
25 cmp_func fnc, void* data);
24 26
25 void ucx_dlist_free(UcxDlist *l); 27 void ucx_dlist_free(UcxDlist *l);
26 UcxDlist *ucx_dlist_append(UcxDlist *l, void *data); 28 UcxDlist *ucx_dlist_append(UcxDlist *l, void *data);
27 UcxDlist *ucx_dlist_prepend(UcxDlist *l, void *data); 29 UcxDlist *ucx_dlist_prepend(UcxDlist *l, void *data);
28 UcxDlist *ucx_dlist_concat(UcxDlist *l1, UcxDlist *l2); 30 UcxDlist *ucx_dlist_concat(UcxDlist *restrict l1, UcxDlist *restrict l2);
29 UcxDlist *ucx_dlist_last(UcxDlist *l); 31 UcxDlist *ucx_dlist_last(const UcxDlist *l);
30 UcxDlist *ucx_dlist_get(UcxDlist *l, int index); 32 UcxDlist *ucx_dlist_get(const UcxDlist *l, int index);
31 size_t ucx_dlist_size(UcxDlist *l); 33 size_t ucx_dlist_size(const UcxDlist *l);
32 34
33 UcxDlist *ucx_dlist_sort(UcxDlist *l, cmp_func fnc, void *data); 35 UcxDlist *ucx_dlist_sort(UcxDlist *l, cmp_func fnc, void *data);
34 36
35 /* dlist specific functions */ 37 /* dlist specific functions */
36 UcxDlist *ucx_dlist_first(UcxDlist *l); 38 UcxDlist *ucx_dlist_first(const UcxDlist *l);
37 UcxDlist *ucx_dlist_remove(UcxDlist *l, UcxDlist *e); 39 UcxDlist *ucx_dlist_remove(UcxDlist *l, UcxDlist *e);
38 40
39 #ifdef __cplusplus 41 #ifdef __cplusplus
40 } 42 }
41 #endif 43 #endif

mercurial