-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlist.h
More file actions
29 lines (24 loc) · 742 Bytes
/
Copy pathlist.h
File metadata and controls
29 lines (24 loc) · 742 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef LIST_H
#define LIST_H
typedef struct node {
struct node *right;
void *obj;
} node_t;
typedef struct {
node_t *head;
} list_t;
typedef void(*ListIter)(void *, void *);
typedef char(*BoolIter)(void *, void *);
typedef void(*FailedNodeFunc)(void *);
typedef void *voidptr;
list_t list_list();
void list_add(list_t *list, void *obj);
void list_remove_obj(list_t *list, void *obj);
int list_index_of(list_t *list, void *obj);
void list_remove_idx(list_t *list, int idx);
void *list_obj_at(list_t *list, int idx);
void list_for_each(list_t *list, ListIter iter, void *data);
void list_for_each_bool(list_t *list, BoolIter iter, voidptr data, FailedNodeFunc failed);
int list_count(list_t *list);
void list_free(list_t *list);
#endif