bool(* compare_function_t)(const void *, const void *data, void *result)
Comparator function for the collections module.
Definition: gru_collection_callbacks.h:30
void(* handle_function_info_t)(const void *, gru_node_info_t info, void *)
A handler function for the collections module that also receiver node information.
Definition: gru_collection_callbacks.h:40
void(* handle_function_t)(const void *, void *)
Handler function for the collections module.
Definition: gru_collection_callbacks.h:35
gru_export void gru_list_destroy(gru_list_t **list)
Ensures that the list is properly destroyed.
Definition: gru_list.c:35
void(* gru_nodedata_destructor)(void **)
Reusable destructor for cleaning list data.
Definition: gru_list.h:39
gru_export void gru_list_for_each_ex(const gru_list_t *list, handle_function_info_t handle, void *data)
Traverses the list executing a set of operations and passes through node information (ie.
Definition: gru_list.c:264
gru_export void gru_list_clean(gru_list_t *list, gru_nodedata_destructor destructor)
Definition: gru_list.c:323
gru_export const gru_node_t * gru_list_get(const gru_list_t *list, uint32_t position)
Gets a node from the list at the given position.
Definition: gru_list.c:214
gru_export gru_node_t * gru_list_insert(gru_list_t *list, const void *data, uint32_t position)
Inserts an item in the list.
Definition: gru_list.c:118
gru_export void gru_list_for_each(const gru_list_t *list, handle_function_t handle, void *data)
Traverses the list executing a set of operations.
Definition: gru_list.c:248
gru_export uint32_t gru_list_count(const gru_list_t *list)
Returns the number of items in a list.
Definition: gru_list.c:83
gru_export gru_list_t * gru_list_new(gru_status_t *status)
Creates a new list.
Definition: gru_list.c:18
gru_export gru_node_t * gru_list_remove(gru_list_t *list, uint32_t position)
Removes an item from a list.
Definition: gru_list.c:141
struct gru_list_t_ gru_list_t
gru_export const void * gru_list_get_item(const gru_list_t *list, compare_function_t comparable, const void *other)
Traverses the list comparing the data.
Definition: gru_list.c:288
gru_export void gru_list_for_each_compare(const gru_list_t *list, bool uniqueness, compare_function_t comparable, const void *compare, void *result)
Traverses the list comparing the data.
Definition: gru_list.c:225
gru_export const gru_node_t * gru_list_append(gru_list_t *list, const void *data)
Appends an item in the list.
Definition: gru_list.c:100
gru_export bool gru_list_remove_item(gru_list_t *list, compare_function_t comparable, const void *other)
Removes a node that matches a given data as returned by comparable.
Definition: gru_list.c:187
gru_export gru_node_t * gru_list_remove_node(gru_list_t *list, gru_node_t *node)
Removes a node from a list.
Definition: gru_list.c:163
#define gru_export
Definition: gru_portable.h:19
Definition: gru_list.h:41
gru_node_t * root
Definition: gru_list.h:41
Definition: gru_node.h:25
Status type.
Definition: gru_status.h:47