libdacav 0.9.0
|
Double linked list implementation. More...
#include <dacav/dacav.h>
Go to the source code of this file.
Typedefs | |
typedef struct dlist | dlist_t |
Opaque type for list. | |
Functions | |
dlist_t * | dlist_new () |
Constructor that allocates a new (empty) list. | |
dlist_t * | dlist_slice (dlist_t *l, unsigned from, unsigned to, dcopy_cb_t cp) |
Constructor that allocates a list basing on slicing. | |
dlist_t * | dlist_copy (dlist_t *l, dcopy_cb_t cp) |
Constructor that makes a shallow copy of the list. | |
dlist_t * | dlist_sort (dlist_t *l, dcmp_cb_t cmp) |
Sort the list. | |
void | dlist_free (dlist_t *l, dfree_cb_t f) |
Free the given list. | |
dlist_t * | dlist_append (dlist_t *l, void *o) |
Append an object. | |
dlist_t * | dlist_push (dlist_t *l, void *o) |
Push an object. | |
dlist_t * | dlist_pop (dlist_t *l, void **o) |
Pop an object. | |
int | dlist_empty (dlist_t *l) |
Check if the list is empty. | |
dlist_t * | dlist_foreach (dlist_t *l, diter_cb_t f, void *ud) |
Run a callback on each element of the list. | |
dlist_t * | dlist_filter (dlist_t *l, dfilter_cb_t f, void *ud) |
Filter elements of the list. | |
diter_t * | dlist_iter_new (dlist_t **l, dcprm_t *cprm) |
Build an iterator for the list. | |
void | dlist_iter_free (diter_t *i) |
Destroy the iterator. |
Double linked list implementation.