72 #define gru_node_get_data_ptr(type, node) (type *) (node)->data
73 #define gru_node_get_data(type, node) (*(gru_node_get_data_ptr(type, node)))
struct gru_node_t_ gru_node_t
gru_export void gru_node_set_next(gru_node_t *gru_restrict node, gru_node_t *gru_restrict next)
Sets the next node for a given node.
gru_export void gru_node_reset(gru_node_t *gru_restrict node)
Reset the pointers for the node and unassign the next and previous pointers.
gru_export void gru_node_destroy(gru_node_t **node)
Destroys a node and sets is address to NULL.
Definition: gru_node.c:33
gru_export void gru_node_set_previous(gru_node_t *gru_restrict node, gru_node_t *gru_restrict previous)
Sets the previous node for a given node.
gru_export gru_node_t * gru_node_new(const void *ptr)
Creates a new node.
Definition: gru_node.c:18
gru_export void gru_node_unlink(gru_node_t *gru_restrict node)
Unlink a node from it's previous and next node and resets it.
#define gru_restrict
Definition: gru_portable.h:20
#define gru_export
Definition: gru_portable.h:19
Definition: gru_node.h:25
struct gru_node_t_ * next
Definition: gru_node.h:26
struct gru_node_t_ * previous
Definition: gru_node.h:27
const void * data
Definition: gru_node.h:28