25 #ifndef LIST_ADT_H_INCLUDED
26 #define LIST_ADT_H_INCLUDED
30 typedef struct _List List;
36 void (*
append)(List *
self, gconstpointer item);
44 list_append(List *
self, gconstpointer item)
46 g_assert(
self->append);
48 self->append(
self, item);
52 list_foreach(List *
self,
list_foreach_fn foreach_fn, gpointer user_data)
54 g_assert(
self->foreach);
56 self->foreach(
self, foreach_fn, user_data);
59 static inline gboolean
60 list_is_empty(List *
self)
62 g_assert(
self->is_empty);
64 return self->is_empty(
self);
68 list_remove_all(List *
self)
70 g_assert(
self->remove_all);
72 self->remove_all(
self);
void(* list_foreach_fn)(gconstpointer list_data, gpointer user_data)
Definition: list-adt.h:32
#define self
Definition: rcptid.c:38
Definition: list-adt.h:35
gboolean(* is_empty)(List *self)
Definition: list-adt.h:38
void(* remove_all)(List *self)
Definition: list-adt.h:39
void(* append)(List *self, gconstpointer item)
Definition: list-adt.h:36
void(* free_fn)(List *self)
Definition: list-adt.h:40